[package] name = "nexosim" # When incrementing version and releasing to crates.io: # - Update crate version in this Cargo.toml # - Update crate version in README.md # - Update crate version in the lib.rs documentation of feature flags # - Update dependency in sibling crates # - Remove path dependencies # - Update CHANGELOG.md # - Update if necessary copyright notice in LICENSE-MIT # - Create a "vX.Y.Z" git tag authors = ["Serge Barral "] version = "0.3.0-beta.0" edition = "2021" rust-version = "1.77.0" license = "MIT OR Apache-2.0" repository = "https://github.com/asynchronics/nexosim" readme = "../README.md" description = """ A high performance asychronous compute framework for system simulation. """ categories = ["simulation", "aerospace", "science"] keywords = ["simulation", "discrete-event", "systems", "cyberphysical", "real-time"] [features] # gRPC service. grpc = ["dep:bytes", "dep:ciborium", "dep:prost", "dep:prost-types", "dep:serde", "dep:tonic", "dep:tokio", "dep:tonic"] tracing = ["dep:tracing", "dep:tracing-subscriber"] # DEVELOPMENT ONLY: API-unstable public exports meant for external test/benchmarking. dev-hooks = [] [dependencies] # Mandatory dependencies. async-event = "0.2.1" crossbeam-utils = "0.8" diatomic-waker = "0.2.3" dyn-clone = "1.0" futures-channel = "0.3" futures-task = "0.3" multishot = "0.3.2" num_cpus = "1.13" parking = "2" pin-project = "1" recycle-box = "0.2" slab = "0.4" spin_sleep = "1" st3 = "0.4" tai-time = "0.3.3" # Optional dependencies. bytes = { version = "1", default-features = false, optional = true } ciborium = { version = "0.2.2", optional = true } prost = { version = "0.13", optional = true } prost-types = { version = "0.13", optional = true } serde = { version = "1", optional = true } tokio = { version = "1.0", features=["net", "rt-multi-thread"], optional = true } tonic = { version = "0.12", default-features = false, features=["codegen", "prost", "server"], optional = true } tracing = { version= "0.1.40", default-features = false, features=["std"], optional = true } tracing-subscriber = { version= "0.3.18", optional = true } [dev-dependencies] futures-util = "0.3" futures-executor = "0.3" tracing-subscriber = { version= "0.3.18", features=["env-filter"] } [target.'cfg(nexosim_loom)'.dev-dependencies] loom = "0.7" waker-fn = "1.1" [target.'cfg(nexosim_grpc_codegen)'.build-dependencies] tonic-build = { version = "0.12" } [lints.rust] # `nexosim_loom` flag: run loom-based tests. # `nexosim_grpc_codegen` flag: regenerate gRPC code from .proto definitions. unexpected_cfgs = { level = "warn", check-cfg = ['cfg(nexosim_loom)', 'cfg(nexosim_grpc_codegen)'] } [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]