Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
8ca4e5b
refactor(render): In the middle of refactoring how rendering works.
tkatter Sep 26, 2025
3364891
refactor(render): Working on processing parsed sequences to ScreenBuffer
tkatter Oct 1, 2025
a04b22f
refactor(render): Color parsing, line/span splitting
tkatter Oct 2, 2025
c5af552
refactor(render): Began handling cursor escape sequences
tkatter Oct 9, 2025
ded10b0
test: Added small crate to automate integration testing on linux
tkatter Oct 9, 2025
ecd0a7a
chore(deps): bump clap from 4.5.50 to 4.5.53
dependabot[bot] Nov 20, 2025
4545f02
refactor(rendering): Re-structured modules and processing pipeling
tkatter Nov 23, 2025
655b810
Merge branch 'main' into refactor/rendering
mergify[bot] Nov 23, 2025
b719ab6
refactor(rendering): Cursor movement/colors now pass existing unit tests
tkatter Nov 24, 2025
a1f2968
commit before I delete stuff and/or put things behind feature flags
tkatter Nov 25, 2025
01afca0
implemented `crossterm::Command` for `Line`
tkatter Nov 26, 2025
94b53bb
refactor(render): Impl `Command` and test cursor movement/screen clea…
tkatter Nov 26, 2025
016dbb0
chore(deps): bump tracing-appender from 0.2.3 to 0.2.4
dependabot[bot] Nov 26, 2025
6830d07
chore(deps): bump tracing-subscriber from 0.3.20 to 0.3.21
dependabot[bot] Nov 26, 2025
6dc9f7d
wip: Working on adding back the cell-overwrite functionality
tkatter Nov 26, 2025
cb6719a
refactor: Added test-log as dev-dependency for tracing in tests
tkatter Nov 27, 2025
c274d2c
refactor(rendering): Implemented overwriting vs pushing to Line
tkatter Nov 27, 2025
c10a3cb
chore(deps): bump tracing from 0.1.41 to 0.1.43
dependabot[bot] Nov 28, 2025
f3ef98e
chore(deps): bump tracing-subscriber from 0.3.20 to 0.3.22
dependabot[bot] Nov 28, 2025
623aee4
refactor(fmt): Formatting
tkatter Dec 6, 2025
6d3a566
feat(repl): Add REPL functionality for sericom
tkatter Dec 6, 2025
b291391
refactor(sessions): Working towards multiple session handling
tkatter Dec 9, 2025
3bc6186
Merge branch 'feat/repl' into refactor/rendering
tkatter Dec 9, 2025
43e2de3
refactor(fmt): Formatting
tkatter Dec 6, 2025
d55db44
refactor: Removed debug module since sericom-core emits tracing events
tkatter Dec 6, 2025
ccf50ad
refactor(rendering): Change `Cell::character` to `u8` for memory opt
tkatter Dec 12, 2025
3aa1dd2
refactor(rendering): Changed ScreenBuffer usize fields to u32 for mem
tkatter Dec 12, 2025
7389b4b
refactor(sessions): Basic SessionManager/SessionHandle foundation
tkatter Dec 12, 2025
8fca75f
refactor(repl): Restructured sericom's commands/cli interface
tkatter Dec 12, 2025
8afefaf
refactor(repl): Change global config to use RwLock to mutate from REPL
tkatter Dec 13, 2025
b61b7a6
refactor: Fix stuff for windows build compat
tkatter Dec 13, 2025
16c5e40
refactor(repl,tracing): Change CLI API and refactored init_tracing
tkatter Dec 13, 2025
be3d77e
refactor: `cfg!(windows)` for `crossterm::Command::execute_winapi()`
tkatter Dec 13, 2025
e072b67
refactor: Added tracing events and fixed hanging bug on shutdown
tkatter Dec 13, 2025
7ae6c8c
refactor(repl): Major transformation of CLI API to a REPL structure
tkatter Dec 13, 2025
9a995a1
refactor(file,repl): Implemented writing session output to file
tkatter Dec 13, 2025
1c4c6aa
Merge branch 'dependabot/cargo/clap-4.5.53' into refactor/rendering
tkatter Dec 14, 2025
e9b5c6c
Merge branch 'dependabot/cargo/tracing-0.1.43' into refactor/rendering
tkatter Dec 14, 2025
a84ccc0
Merge branch 'dependabot/cargo/tracing-appender-0.2.4' into refactor/…
tkatter Dec 14, 2025
1f3f434
Merge branch 'dependabot/cargo/tracing-subscriber-0.3.21' into refact…
tkatter Dec 14, 2025
53feabb
Merge branch 'dependabot/cargo/tracing-subscriber-0.3.22' into refact…
tkatter Dec 14, 2025
b78d604
refactor(tasks,error): Refactored session tasks and error handling
tkatter Dec 15, 2025
3bc357c
refactor(error,tracing): init_tracing() was broken, more error work
tkatter Dec 16, 2025
68724a6
refactor(parsing): Refactoring parsing/handling sequences
tkatter Dec 18, 2025
8e00d0e
refactor(parsing): More parsing/control sequence handling
tkatter Dec 19, 2025
971dd1c
refactor(parsing,rendering): Finished replacing ScreenDriver handling
tkatter Dec 20, 2025
29dabc9
Merge branch 'main' into refactor/rendering
mergify[bot] Dec 20, 2025
d0bebbe
test: Testing the handling of CSI/C0/C1 sequences
tkatter Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
275 changes: 230 additions & 45 deletions Cargo.lock

Large diffs are not rendered by default.

17 changes: 13 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = ["sericom", "sericom-core"]
members = ["sericom", "sericom-core", "test-sericom"]
resolver = "3"

[workspace.package]
Expand All @@ -11,14 +11,23 @@ repository = "https://github.com/tkatter/sericom"
[workspace.dependencies]
chrono = "0.4.42"
crossterm = { version = "0.29.0", features = ["osc52", "event-stream"] }
miette = { version = "7.6.0", features = ["fancy"] }
serial2-tokio = { version = "0.1.19", features = ["windows"] }
miette = "7.6.0"
tokio = { version = "1.48.0", features = ["full"] }
tracing = "0.1.41"
serial2-tokio = "0.1.19"
tracing = "0.1.43"

[patch.crates-io]
sericom-core = { path = "sericom-core" }

# Keeps usefull information for perf report
[profile.perf]
inherits = "release"
debug = true # keep DWARF info for perf/flamegraph
lto = "fat" # don't merge crates; keeps crate boundaries visible
codegen-units = 1 # better optimizer consistency
opt-level = 3 # full optimization
strip = "none" # ensure debug info isn't stripped

# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
Expand Down
55 changes: 55 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
alias b := build
alias br := build-release
alias c := check
alias f := fmt
alias l := lint
alias r := run
alias t := test
alias tt := test-trace

default-trace := 'sericom-core'
default-tests := ''

default: check lint

build:
cargo build

build-release:
cargo build --release

check:
cargo check

check-win:
cargo check --target x86_64-pc-windows-msvc

clean:
cargo clean

fmt:
cargo fmt

lint:
cargo clippy

list-tests:
cargo test -- --list

run:
cargo run -p sericom

run-file:
cargo run -- /dev/ttyUSB0 -f

testseri:
cargo run -p test-sericom

run-trace:
cargo run -- /dev/ttyUSB0 -d

test tests=default-tests:
cargo test {{tests}} --no-fail-fast --lib

test-trace tests=default-tests:
RUST_LOG='sericom_core::screen::buffer=debug,sericom_core=trace' cargo test {{tests}} --no-fail-fast --lib -- --nocapture
14 changes: 12 additions & 2 deletions sericom-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,22 @@ exclude.workspace = true
repository.workspace = true

[dependencies]
parking_lot = "0.12.5"
serde = { version = "1.0.228", features = ["derive"] }
thiserror = "2.0.17"
toml = "0.9.8"
chrono.workspace = true
crossterm.workspace = true
miette.workspace = true
serial2-tokio.workspace = true
serial2-tokio = { workspace = true, features = ["windows"] }
tokio.workspace = true
tracing.workspace = true
tracing = { workspace = true, features = ["attributes"] }

[dev-dependencies]
test-log = {version = "0.2.18", default-features = false, features = ["trace", "color"]}
test-sericom = { version = "0.1.0", path = "../test-sericom" }

[lints.clippy]
pedantic = "warn"
perf = "warn"
nursery = "warn"
Loading
Loading