flowrs-engine/crates/flowrs-ml/Cargo.toml
flowRS fd958c0547 flowRS engine, cut from flowRS 3451b065
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 19:04:39 -05:00

53 lines
2.1 KiB
TOML

[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 = []