This is an experimental set of crates in early development. APIs are not stable and may change significantly between versions. Use with caution in production environments.
A set of crates providing a protocol-agnostic Intermediate Representation (IR) for OSC-adjacent data and codecs to/from JSON and MessagePack, plus an adapter for rust-osc-types.
- OSC Version Support: Configurable support for OSC 1.0 and OSC 1.1 via feature flags
- Bundle Support: Full OSC Bundle implementation with nested bundle support
- Cross-format Compatibility: Seamless conversion between JSON and MessagePack
- Protocol Agnostic: IR design works with any transport or encoding
- no_std Support: Core IR works in embedded environments (with
alloc)
The osc-ir crate supports different OSC protocol versions through feature flags:
osc10: OSC 1.0 support (includes bundles, timetags, basic types) - defaultosc11: OSC 1.1 support (includes all OSC 1.0 features plus Color, MIDI types)
# Default: OSC 1.0 support
[dependencies]
osc-ir = "0.1.0-alpha.1"
# OSC 1.1 support
[dependencies]
osc-ir = { version = "0.1.0-alpha.1", features = ["osc11"] }
# Basic IR only (no OSC-specific features)
[dependencies]
osc-ir = { version = "0.1.0-alpha.1", default-features = false }
# With serde support for JSON/MessagePack
[dependencies]
osc-ir = { version = "0.1.0-alpha.1", features = ["osc10", "serde"] }All crates are currently in experimental alpha stage (version 0.1.0-alpha.1):
osc-ir: Core intermediate representation types with no_std supportosc-codec-json: JSON serialization codec forosc-irosc-codec-msgpack: MessagePack serialization codec forosc-irosc-adapter-osc-types: Conversions betweenosc-irandrust-osc-types(disabled, TODO)osc-devtools: CLI tools for testing and development
- MSRV is 1.75, providing access to modern Rust features and latest dependency versions.
MIT OR Apache-2.0