[package] name = "flowrs-ml" version.workspace = true edition.workspace = true publish.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true description = "TinyML for FlowRS: a small serde model schema + a dependency-free f32 inference runtime that runs in the browser, on a host, or (no_std-ready) on an MCU — the Edge Impulse 'deploy a model' idea, in pure Rust." [lib] crate-type = ["rlib"] [dependencies] serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } # no_std transcendental math — used by BOTH the runtime and the generated MCU # code, so a deployed model matches the reference runtime exactly (not just close). libm = "0.2" # ONNX execution. Optional, and off unless the `onnx` feature is on: the encoder and # the f32 runtime stay free of an inference engine so the browser bundle and the MCU # build do not pay for one. `getrandom-js` is what lets tract compile to wasm32, the # same reason flowrs-core's own ONNX feature enables it. tract-onnx = { version = "0.23.9", features = ["getrandom-js"], optional = true } [features] default = [] # Load an ONNX file and run it. The bytes may be this crate's own [`to_onnx`] export # or any other model tract can execute. onnx = ["dep:tract-onnx"] [dev-dependencies] # Symposium (`cargo agents`): an agent working on a project that depends on this crate gets # the flowRS skill (crates/flowrs-mcp/symposium/flowrs, rendered by flowrs-mcp's # skills::symposium_plugin) and the flowRS MCP server under the read-only plan profile. Never # the full profile: a dependency is not a trust root, and Symposium registers servers at user # level. Symposium 0.5.1 parses a crate's MCP entry but does not dispatch it yet; a registry # carrying symposium/flowrs/SYMPOSIUM.toml registers the same entry today. [package.metadata.symposium] [package.metadata.symposium.defaults] skills = false [[package.metadata.symposium.skills]] source.path = "../flowrs-mcp/symposium/flowrs/skills/core" [[package.metadata.symposium.mcp_servers]] name = "flowrs" command = "flowrs-mcp" args = ["--profile", "plan"] env = []