Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Jun 04:25
· 2 commits to dev since this release
347d4af

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 @jscott3201 in #84
  • ci(release): publish python distributions by @jscott3201 in #85
  • release: 0.1.0 by @jscott3201 in #86

Full Changelog: https://github.com/jscott3201/rusty-modbus/commits/v0.1.0