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.
141 lines
3.2 KiB
TOML
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
|