[workspace] resolver = "2" members = [ "crates/synor-types", "crates/synor-crypto", "crates/synor-dag", "crates/synor-consensus", "crates/synor-network", "crates/synor-storage", "crates/synor-hosting", "crates/synor-database", "crates/synor-compute", "crates/synor-governance", "crates/synor-rpc", "crates/synor-vm", "crates/synor-mining", "crates/synor-sdk", "crates/synor-contract-test", "crates/synor-compiler", "apps/synord", "apps/cli", "apps/faucet", "apps/explorer", ] exclude = [ "contracts/token", "contracts/nft", "contracts/dex", "contracts/staking", "crates/synor-crypto-wasm", "apps/desktop-wallet/src-tauri", ] # WASM modules are not part of workspace as they target wasm32 # Build crypto-wasm with: cd crates/synor-crypto-wasm && wasm-pack build --target web # Contract examples are not part of workspace as they target wasm32 # Build them separately with: # cargo build --manifest-path contracts/token/Cargo.toml --target wasm32-unknown-unknown --release # cargo build --manifest-path contracts/nft/Cargo.toml --target wasm32-unknown-unknown --release [workspace.package] version = "0.1.0" edition = "2021" authors = ["Synor Team "] license = "MIT OR Apache-2.0" repository = "https://github.com/synorcc/synor" homepage = "https://synor.cc" description = "Quantum-secure decentralized cloud computing platform" rust-version = "1.75" [workspace.dependencies] # Async runtime tokio = { version = "1.35", features = ["full"] } async-trait = "0.1" futures = "0.3" # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" bincode = "1.3" borsh = { version = "1.3", features = ["derive"] } # Cryptography - Classical ed25519-dalek = { version = "2.1", features = ["serde", "rand_core"] } x25519-dalek = { version = "2.0", features = ["serde"] } sha3 = "0.10" blake3 = "1.5" rand = "0.8" rand_core = "0.6" # Cryptography - Post-Quantum (NIST standards) pqcrypto-dilithium = "0.5" pqcrypto-kyber = "0.8" pqcrypto-traits = "0.3" # Hashing tiny-keccak = { version = "2.0", features = ["sha3"] } # Networking libp2p = { version = "0.53", features = ["tokio", "gossipsub", "kad", "identify", "noise", "yamux", "tcp", "dns", "websocket", "macros"] } # Storage rocksdb = "0.22" # CLI clap = { version = "4.4", features = ["derive"] } # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Error handling thiserror = "1.0" anyhow = "1.0" # Utilities hex = "0.4" bs58 = "0.5" bech32 = "0.11" parking_lot = "0.12" dashmap = "5.5" once_cell = "1.19" derive_more = "0.99" smallvec = "1.13" hashbrown = "0.14" chrono = { version = "0.4", features = ["serde"] } # WASM runtime (for smart contracts) wasmtime = "17.0" # RPC jsonrpsee = { version = "0.21", features = ["server", "client", "macros"] } tower = "0.4" axum = "0.7" # Testing criterion = "0.5" lru = "0.12" proptest = "1.4" tempfile = "3.9" [profile.release] lto = "thin" codegen-units = 1 opt-level = 3 [profile.dev] opt-level = 1 [profile.dev.package."*"] opt-level = 3 # Profiling profile - optimized but with debug symbols for flamegraphs [profile.profiling] inherits = "release" debug = true strip = false # Benchmark profile - maximum optimization [profile.bench] lto = "thin" codegen-units = 1 opt-level = 3