mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
9884019963
- Implementing a async non-io protocol crate a) no tokio / no channels b) I/O is based on abstraction Sink/Drain c) different Protocols can have a different Drain Type This allow MPSC to send its content without splitting up messages at all! It allows UDP to have internal extra frames to care for security It allows better abstraction for tests Allows benchmarks on the mpsc variant Custom Handshakes to allow sth like Quic protocol easily - reduce the participant managers to 4: channel creations, send, recv and shutdown. keeping the `mut data` in one manager removes the need for all RwLocks. reducing complexity and parallel access problems - more strategic participant shutdown. first send. then wait for remote side to notice recv stop, then remote side will stop send, then local side can stop recv. - metrics are internally abstracted to fit protocol and network layer - in this commit network/protocol tests work and network tests work someway, veloren compiles but does not work - handshake compatible to async_std
88 lines
2.3 KiB
TOML
88 lines
2.3 KiB
TOML
cargo-features = ["named-profiles","profile-overrides"]
|
|
|
|
[workspace]
|
|
members = [
|
|
"common",
|
|
"common/net",
|
|
"common/sys",
|
|
"client",
|
|
"plugin/api",
|
|
"plugin/derive",
|
|
"plugin/rt",
|
|
"server",
|
|
"server-cli",
|
|
"voxygen",
|
|
"voxygen/anim",
|
|
"world",
|
|
"network",
|
|
"network/protocol"
|
|
]
|
|
|
|
# default profile for devs, fast to compile, okay enough to run, no debug information
|
|
[profile.dev]
|
|
opt-level = 2
|
|
overflow-checks = true
|
|
debug-assertions = true
|
|
panic = "abort"
|
|
debug = false
|
|
codegen-units = 8
|
|
lto = false
|
|
incremental = true
|
|
# All dependencies (but not this crate itself)
|
|
[profile.dev.package."*"]
|
|
opt-level = 3
|
|
[profile.dev.package."veloren-network"]
|
|
opt-level = 2
|
|
[profile.dev.package."veloren-network-protocol"]
|
|
opt-level = 3
|
|
[profile.dev.package."veloren-common"]
|
|
opt-level = 2
|
|
[profile.dev.package."veloren-client"]
|
|
opt-level = 2
|
|
[profile.dev.package."veloren-server"]
|
|
opt-level = 2
|
|
[profile.dev.package."veloren-server-cli"]
|
|
opt-level = 2
|
|
[profile.dev.package."veloren-voxygen"]
|
|
opt-level = 2
|
|
[profile.dev.package."veloren-world"]
|
|
opt-level = 2
|
|
|
|
[profile.no_overflow.package."veloren-world"]
|
|
opt-level = 3
|
|
|
|
[profile.no_overflow.package."veloren-voxygen-anim"]
|
|
opt-level = 3
|
|
|
|
# this profile is used by developers if dev doesn't has enough debug information, the name must != debug, as debug is used by dev because....
|
|
[profile.debuginfo]
|
|
inherits= 'dev'
|
|
debug = true
|
|
|
|
# used to perform things that do a *lot* of math (i.e. worldgen) but still need reasonable compilation time. Ideally this would also
|
|
# add -C target-cpu=native, but I don't think you can set this by profile currently.
|
|
[profile.no_overflow]
|
|
inherits= 'dev'
|
|
overflow-checks = false
|
|
debug-assertions = false
|
|
|
|
# this profile is used for veloren releases, compile time doesn't matter
|
|
# we need stacktraces, light debug information, as much checks as possible
|
|
# I would like to put it in a seperate `official_release` target, but that doesnt share caches with `cargo test` and `cargo bench`
|
|
[profile.release]
|
|
opt-level = 3
|
|
overflow-checks = false
|
|
debug-assertions = false
|
|
lto = true
|
|
debug = false
|
|
|
|
# this profile is used by developers for release profiling
|
|
[profile.releasedebuginfo]
|
|
inherits = 'release'
|
|
debug = 1
|
|
|
|
[patch.crates-io]
|
|
# macos CI fix isn't merged yet
|
|
winit = { git = "https://gitlab.com/veloren/winit.git", branch = "macos-test-spiffed" }
|
|
vek = { git = "https://gitlab.com/veloren/vek.git", branch = "fix_intrinsics" }
|