The CONTRACT-01 type definitions, committed early so the session slice can build on them while the fixtures and cross-language tests are still being written. - scalar: Scope, RationalNs (reduced, positive denominator, 0/1 zero, checked arithmetic and the step-v1 accumulator), SchemaRef, TypedValue with its 32-KiB canonical-JSON cap, and the four identities that must not be confused (bus callId, domain requestId, artifact identity, delivery/hold owner token) as distinct types. Id, U64 and Digest call into flybus::wire instead of forking the encodings. - canonical: RFC 8785 canonical JSON, SHA-256 digests, the operation key and the canonical body rules of ipc-v1 section 5, with bus identities refused in a body. - rpc, workers, media, publishing: the payloads of ipc-v1, workers-v1, state-media-v1 and publishing-v1, each with a validate step for the documented ranges, uniqueness, ordering and bounds. - schema: the canonical schema set, whose digest is contractDigest, declared as data so source formatting cannot change it. - trace: the step-v1 section 8 record, behaviour separated from operational metadata. - seed, checkpoint: the seed derivation and FLYSESS1 envelope layout.
41 lines
1.2 KiB
TOML
41 lines
1.2 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"crates/fly-session-types",
|
|
"crates/flybrain-core",
|
|
"crates/flybrain-gb",
|
|
"crates/flybus",
|
|
"crates/flysim",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.1.1"
|
|
rust-version = "1.94"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
|
|
[workspace.dependencies]
|
|
base64 = "0.22"
|
|
cc = "1.4.2"
|
|
flate2 = "1"
|
|
cudarc = { version = "0.19.9", default-features = false, features = [
|
|
"std",
|
|
"driver",
|
|
"nvrtc",
|
|
"dynamic-loading",
|
|
"cuda-12080",
|
|
] }
|
|
indexmap = { version = "2", features = ["serde"] }
|
|
libm = "0.2"
|
|
ryu-js = "1"
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
# `float_roundtrip` is not optional: without it serde_json's fast float parser can land 1 ulp off
|
|
# the value `JSON.parse` produces, which is enough to break a golden comparison.
|
|
serde_json = { version = "1.0.151", features = ["preserve_order", "float_roundtrip"] }
|
|
sha2 = "0.10.9"
|
|
|
|
# Bit-exactness with the TypeScript oracle is the whole point of this workspace, so the
|
|
# release profile must not be allowed to reassociate or contract float arithmetic. Rust does
|
|
# neither by default; these settings only pin the parts we do care about.
|
|
[profile.release]
|
|
debug = 1
|