Releases: jscott3201/rusty-modbus
Releases · jscott3201/rusty-modbus
v0.1.0
What's Changed
- Release groundwork: deps refresh, MSRV 1.95, CI overhaul + publish fixes by @jscott3201 in #1
- Client/transport correctness: idle-reader death, short-response panic, FC verification by @jscott3201 in #2
- Gateway: validate RTU response unit_id + FC before relaying (anti cross-talk) by @jscott3201 in #3
- RTU: single-in-flight client + correct response matching by @jscott3201 in #5
- Pool: genuine two-pool budgets, wired backoff, task lifecycle (A4) by @jscott3201 in #6
- TLS: hostname/SNI verification, live role extraction, authz helper (A5) by @jscott3201 in #7
- Packaging & docs: docs.rs metadata, per-crate READMEs, CHANGELOG, FC table (A6) by @jscott3201 in #8
- Conformance: cover the server's real validation path (A7) by @jscott3201 in #9
- Release v0.1.0: spec/robustness/packaging hardening by @jscott3201 in #10
- feat(server): server-side support for 8 more function codes (File/FIFO/diagnostics) by @jscott3201 in #11
- release: server-side support for 8 more function codes (File/FIFO/diagnostics) by @jscott3201 in #12
- feat(python): adapt bindings for Python 3.14 server support by @jscott3201 in #13
- fix(protocol): harden frame and PDU validation by @jscott3201 in #14
- ci(test): add nextest CI profile by @jscott3201 in #15
- fix(client): surface request encode errors by @jscott3201 in #16
- fix(client): validate raw PDU length before send by @jscott3201 in #17
- fix(server): validate store read counts by @jscott3201 in #18
- ci: reduce Python PR gate runtime by @jscott3201 in #19
- fix(server): bound diagnostic response payloads by @jscott3201 in #20
- ci(python): dedupe binding clippy gate by @jscott3201 in #21
- fix(server): bound in-memory bulk writes by @jscott3201 in #22
- fix(server): guard response frame size by @jscott3201 in #23
- fix(gateway): guard RTU to MBAP response size by @jscott3201 in #24
- ci(test): add local nextest runner by @jscott3201 in #25
- fix(types): bound MBAP header construction by @jscott3201 in #26
- fix(server): fail closed on response encode errors by @jscott3201 in #27
- fix(client): skip zero transaction id after wrap by @jscott3201 in #28
- ci(python): overlap stubs with free-threaded wheel tests by @jscott3201 in #29
- fix(server): check response byte count conversions by @jscott3201 in #30
- fix(sim): validate configured block address ranges by @jscott3201 in #31
- fix(cli): avoid address overflow in human output by @jscott3201 in #32
- feat(cli): add ratatui dashboard by @jscott3201 in #33
- feat(cli): add dashboard command bar by @jscott3201 in #34
- fix(cli): reject invalid write values by @jscott3201 in #35
- feat(cli): add dashboard command history by @jscott3201 in #36
- feat(cli): share dashboard command help by @jscott3201 in #37
- feat(cli): complete dashboard commands by @jscott3201 in #38
- refactor(cli): expose reusable discovery scan by @jscott3201 in #39
- feat(cli): add interactive unit discovery by @jscott3201 in #40
- chore(python): add local wheel and stub gate by @jscott3201 in #41
- fix(server): reject invalid in-memory store setup by @jscott3201 in #42
- fix(server): validate file-record address bounds by @jscott3201 in #43
- feat(logging): add structured tracing diagnostics by @jscott3201 in #44
- ci(python): inline stub checks into wheel job by @jscott3201 in #45
- bench(tcp): measure single-connection pipelining by @jscott3201 in #46
- docs(benchmarks): add stress baseline report by @jscott3201 in #47
- fix(codec): enforce PDU size limit by @jscott3201 in #48
- fix(codec): reject zero function code by @jscott3201 in #49
- fix(codec): validate file-record payloads by @jscott3201 in #50
- fix(server): enforce protocol validation before store by @jscott3201 in #51
- perf(server): encode read responses directly by @jscott3201 in #52
- docs(benchmarks): refresh stress baseline by @jscott3201 in #53
- fix(rtu): enforce serial transmit silence by @jscott3201 in #54
- feat(cli): add dockerized server and benchmark tooling by @jscott3201 in #55
- fix(client): validate write response echoes by @jscott3201 in #56
- fix(codec): reject trailing fixed-length pdu data by @jscott3201 in #57
- docs(benchmarks): refresh stress benchmark report by @jscott3201 in #58
- fix(codec): enforce diagnostic data word alignment by @jscott3201 in #59
- fix(frame): align owned response validation by @jscott3201 in #60
- feat(docker): add distroless runtime and benchmark suite by @jscott3201 in #61
- perf(benchmarks): add codec zero-copy baselines by @jscott3201 in #62
- perf(server): write packed request payloads without heap buffers by @jscott3201 in #63
- perf(frame): avoid duplicate mbap header decode by @jscott3201 in #64
- perf(frame): scan rtu tcp crc boundaries incrementally by @jscott3201 in #65
- perf(server): read bit tables directly into packed responses by @jscott3201 in #66
- perf(server): read register tables directly into response bytes by @jscott3201 in #67
- perf(server): read fifo queues directly into response bytes by @jscott3201 in #68
- perf(server): handle file records from wire bytes by @jscott3201 in #69
- perf(server): write fc23 reads into response bytes by @jscott3201 in #70
- perf(benchmarks): add server handler baselines by @jscott3201 in #71
- perf(server): build device id responses without object vectors by @jscott3201 in #72
- perf(server): append server id into response buffer by @jscott3201 in #73
- perf(server): append diagnostics into response buffer by @jscott3201 in #74
- perf(server): append comm event logs into response buffer by @jscott3201 in #75
- perf(server): build file read responses in final buffer by @jscott3201 in #76
- perf(server): stack-stage file write groups by @jscott3201 in #77
- perf(server): pack coils by byte by @jscott3201 in #78
- perf(server): store bit tables as bytes by @jscott3201 in #79
- feat(python): type optional datastore callbacks by @jscott3201 in #80
- fix(client): bound device id pagination by @jscott3201 in #81
- fix(codec): validate device id response fields by @jscott3201 in #82
- test(python): enforce public typing contracts by @jscott3201 in #83
- docs: document current api surfaces by @js...