1 unstable release
Uses new Rust 2024
| 0.1.1 | Aug 25, 2025 |
|---|
#2168 in Algorithms
Used in frib_datasource
63KB
1K
SLoC
rust_ringmaster_client
Rust client for FRIB/NSCLDAQ ring; master server. Best way to look at docs is to pull the repository down and
cargo doc --no-deps --open
Note that at some point this will be published to crates.io at which point docs will be available on the Rust docs site.
lib.rs:
Client library for a ringmaster_client. THe ring master advertises the RING_MASTER service on the port manager. It accepts several textual requests:
- CONNECT - connects us, the client to a ring, either as a producer or a consumer.
- DISCONNECT - disconnects an existing client from a ring.
- LIST - returns a list of rings and their statistics. this is in the form of a Tcl list and we include a simple list parsing package.
- REGISTER - registers the creation of a new ringbuffer.
- UNREGISTER - informs the ring master of a ring destruction.
- REMOTE - asks the ringmaster to set up a ring2stdout that will then ship data across the connection. This supports obtainng data from remote ringbuffers.
It is intended that this crate be used in conjunction with the nscldaq_ringbuffer package to correctly access rings.
Note: Tests for this 6crate must be run with --test-threads 1 or they will fail. Alternatives will essentially serialize anyway by e.g. entering a mutex when a test starts and then exiting it...so the only point of that would be to make it not necessary for the user to supply -- --test-threads 1 to Cargo test.
Dependencies
~5–12MB
~225K SLoC