[package] name = "reactive-mutiny" version = "1.3.0" edition = "2021" description = "async Event-Driven Reactive Library with advanced & optimized containers (channels) and Stream executors" keywords = ["reactive", "event-driven", "microservices", "async", "performance"] categories = ["asynchronous", "concurrency", "rust-patterns"] readme = "README.md" authors = ["Luiz Silveira "] homepage = "https://github.com/zertyz/reactive-mutiny" repository = "https://github.com/zertyz/reactive-mutiny" documentation = "https://docs.rs/reactive-mutiny/" license = "Unlicense" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [workspace] [features] [dependencies] log = "0.4" tokio = { version = "1", features = ["full", "rt-multi-thread"] } futures = "0.3" # brings in "Streams" / async iterators minstant = "0.1" # as fast as possible time measurements on X86_64 using TSC / RDTSC instructions -- avoiding system calls & context switches indexmap = "2" # hashmaps as fast as vectors to traverse through values (preserves the insertion order in a vector) atomic_enum = "0.3" parking_lot = "0.12" # way faster than std mutex (and tokio mutexes as well) crossbeam = "0.8" # scoped threads crossbeam-channel = "0.5" # the fastest channels available, besides ours (they aren't zero-copy) memmap = "0.7" once_cell = "1.17" # lazy statics owning_ref = "0.4" # allows Arcs to be used for internal references keen-retry = "0.5" # for the retrying mechanism # doc-dependencies ctor = "0.2" # setup and teardown for modules [dev-dependencies] ctor = "0.2" # setup and teardown for modules simple_logger = "5" # a dirty console logger log = { version = "0.4", features = ["max_level_trace", "release_max_level_info"] } defaults = "0.2" # allows enums variantes requiring parameters to be annotated with #[default] # dependencies for the socket-server example ############################################ # default config loading & saving serde = { version = "1.0", features = ["derive"] } # typed serialization / deserialization ron = "0.8" # .ron config files regex = "1.5" # for placing docs along with config files # std replacements minstant = "0.1" # (real) time measurements through RDTSC instruction (without calling the Kernel / without causing a context switch) # command-line parsing structopt = "0.3" # command line parsing strum = { version = "0.26", features = ["derive"] } # enums serialization/deserialization strum_macros = "0.26" chrono = "0" # console UI slog-stdlog = "4" # Facade between slog and Rust's standard 'log' api slog-scope = "4" slog = "2" sloggers = "2" # deprecated lazy_static = "1.4" # as of 2023-03-29: use `one_cell` instead neat-date-time = "0.2" # as of 2023-04-05: scheduled to be removed once the ogre examples are removed from here # dependencies for benchmarks ############################# criterion = { version = "0.5", features=["html_reports"] } [[bench]] name = "channels" harness = false [[bench]] name = "rc_wrappers" harness = false