synor/Cargo.toml
Gulshan Yadav a70b2c765c feat(hosting): add Synor Hosting subdomain-based web hosting
Add synor-hosting crate for decentralized web hosting with:

- Name Registry: On-chain name→CID mapping with ownership, expiry,
  and custom domain linking
- Domain Verification: CNAME/TXT DNS verification for custom domains
- Hosting Router: Host-based routing with SPA support, redirects,
  and custom headers
- synor.json: Project configuration for build, routes, and error pages

Users can deploy to myapp.synor.cc and optionally link custom domains.

23 tests passing.
2026-01-10 12:34:07 +05:30

141 lines
3.2 KiB
TOML

[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-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 <team@synor.cc>"]
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