[package] name = "renoir" description = "Network of Operators In Rust" version = "0.2.0" edition = "2021" authors = [ "Luca De Martini ", "Edoardo Morassutto ", "Marco Donadoni " ] license = "LGPL-3.0-or-later" repository = "https://github.com/deib-polimi/renoir" homepage = "https://github.com/deib-polimi/renoir" readme = "README.md" [features] default = ["clap", "ssh", "timestamp"] timestamp = [] ssh = ["ssh2", "whoami", "shell-escape", "sha2", "base64"] tokio = ["dep:tokio", "futures", "tokio/net", "tokio/io-util", "tokio/time", "tokio/rt-multi-thread", "tokio/macros"] profiler = [] [dependencies] # for logging to the console log = { version = "0.4.21", features = ["release_max_level_info"] } # used by the network for storing type-generic structures typemap_rev = "0.3.0" # the shuffle() operator requires a random source nanorand = "0.7.0" # utility macros for customizing the derive Debug, Default, ... derivative = "2.2.0" # serialization serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.114" bincode = "1.3.3" toml = "0.8.11" thiserror = "1.0.58" # handy iterators functions # for storing non-mutable static variables with non-trivial initialization once_cell = "1.19.0" # used for spawning the remote workers ssh2 = { version = "0.9.4", optional = true } whoami = { version = "1.5.1", optional = true } shell-escape = { version = "0.1.5", optional = true } clap = { version = "4.5.2", features = ["derive"], optional = true } sha2 = { version = "0.10.8", optional = true } base64 = { version = "0.22.0", optional = true } # channel implementation flume = "0.11.0" # used for csv file source csv = "1.3.0" # Lazy with support for delayed and synchronized initialization lazy-init = "0.5.1" # Faster monotonic clock using libc's CLOCK_MONOTONIC_COARSE coarsetime = "0.1.34" tokio = { version = "1.36.0", features = ["rt"], default-features = false, optional = true } futures = { version = "0.3.30", optional = true } parking_lot = "0.12.1" wyhash = "0.5.0" fxhash = "0.2.1" glidesort = "0.1.2" indexmap = "2.2.5" tracing = { version = "0.1.40", features = ["log"] } quick_cache = "0.4.1" dashmap = "5.5.3" [dev-dependencies] # for the tests env_logger = "0.11.3" rand = { version = "0.8.5", features = ["small_rng"] } tempfile = "3.10.1" criterion = { version = "0.5.1", features = ["html_reports"] } fake = "2.9.2" mimalloc = { version = "0.1.39", default-features = false } tracing-subscriber = "0.3.18" itertools = "0.12.1" micrometer = { version = "0.2.7", features = ["enable"]} # for the examples regex = "1.10.3" kstring = { version = "2.0.0", features = ["serde"] } nexmark = { version = "0.2.0", features = ["serde"] } [[example]] name = "nexmark" required-features = ["timestamp"] [[example]] name = "rolling_top_words" required-features = ["timestamp"] [[example]] name = "rolling_top_words_e2e" required-features = ["timestamp"] # The list of benchmarks, all of them require "harness = false" in order to # work with criterion.rs. Cannot set `[lib] harness = false` because the tests # require the harness. [[bench]] name = "collatz" harness = false [[bench]] name = "connected" harness = false [[bench]] name = "wordcount" harness = false [[bench]] name = "shuffle" harness = false [[bench]] name = "fold_vs_reduce" harness = false [[bench]] name = "batch_mode" harness = false [[bench]] name = "nexmark" harness = false [profile.release] lto = true # strip = "symbols" debug = 1 [profile.release-fast] inherits = "release" lto = true codegen-units = 1 panic = "abort"