[package]
edition = "2021"
rust-version = "1.75"
name = "telltale-machine"
version = "17.0.0"
authors = ["Sam Hart"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Protocol machine for choreographic session type protocols"
readme = "README.md"
keywords = [
"session",
"types",
"vm",
"choreography",
"runtime",
]
categories = ["compilers"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/hxrts/telltale"
[features]
default = []
multi-thread = ["rayon"]
wasm = ["getrandom/js"]
[lib]
name = "telltale_machine"
path = "src/lib.rs"
bench = false
[[bin]]
name = "profile_driver"
path = "src/bin/profile_driver.rs"
[[example]]
name = "v2_baseline_capture"
path = "examples/v2_baseline_capture.rs"
[[test]]
name = "bytecode_conformance"
path = "tests/bytecode_conformance.rs"
[[test]]
name = "canonical_engine_guard"
path = "tests/canonical_engine_guard.rs"
[[test]]
name = "commit_discipline_guard"
path = "tests/commit_discipline_guard.rs"
[[test]]
name = "conformance_lean"
path = "tests/conformance_lean.rs"
[[test]]
name = "coro_lookup_proxy"
path = "tests/coro_lookup_proxy.rs"
[[test]]
name = "differential_step_corpus"
path = "tests/differential_step_corpus.rs"
[[test]]
name = "durable_contracts"
path = "tests/durable_contracts.rs"
[[test]]
name = "effect_wrapper_contracts"
path = "tests/effect_wrapper_contracts.rs"
[[test]]
name = "equivalence_lean"
path = "tests/equivalence_lean.rs"
[[test]]
name = "exec_monitor_cost"
path = "tests/exec_monitor_cost.rs"
[[test]]
name = "fault_taxonomy_snapshot"
path = "tests/fault_taxonomy_snapshot.rs"
[[test]]
name = "flow_serialization"
path = "tests/flow_serialization.rs"
[[test]]
name = "functional_instr"
path = "tests/functional_instr.rs"
[[test]]
name = "functional_session"
path = "tests/functional_session.rs"
[[test]]
name = "fuzz_protocols"
path = "tests/fuzz_protocols.rs"
[[test]]
name = "host_boundary_guard"
path = "tests/host_boundary_guard.rs"
[[test]]
name = "instr_fault_snapshots"
path = "tests/instr_fault_snapshots.rs"
[[test]]
name = "kernel_ndet_guard"
path = "tests/kernel_ndet_guard.rs"
[[test]]
name = "lean_protocol_machine_equivalence"
path = "tests/lean_protocol_machine_equivalence.rs"
[[test]]
name = "ownership_contracts"
path = "tests/ownership_contracts.rs"
[[test]]
name = "parity_fixtures_v2"
path = "tests/parity_fixtures_v2.rs"
[[test]]
name = "prop_invariants"
path = "tests/prop_invariants.rs"
[[test]]
name = "rand_instr_diff"
path = "tests/rand_instr_diff.rs"
[[test]]
name = "register_bounds"
path = "tests/register_bounds.rs"
[[test]]
name = "replay_persistence_identity"
path = "tests/replay_persistence_identity.rs"
[[test]]
name = "schedule_robustness"
path = "tests/schedule_robustness.rs"
[[test]]
name = "semantic_effect_lean"
path = "tests/semantic_effect_lean.rs"
[[test]]
name = "serialization_lean"
path = "tests/serialization_lean.rs"
[[test]]
name = "serialization_replay"
path = "tests/serialization_replay.rs"
[[test]]
name = "strict_tick_equality"
path = "tests/strict_tick_equality.rs"
[[test]]
name = "strict_value_rejection"
path = "tests/strict_value_rejection.rs"
[[test]]
name = "threaded_contract"
path = "tests/threaded_contract.rs"
[[test]]
name = "threaded_equivalence"
path = "tests/threaded_equivalence.rs"
[[test]]
name = "threaded_lane_runtime"
path = "tests/threaded_lane_runtime.rs"
[[test]]
name = "tooling_convergence_guard"
path = "tests/tooling_convergence_guard.rs"
[[test]]
name = "topology_effect_ingress"
path = "tests/topology_effect_ingress.rs"
[[test]]
name = "trace_corpus"
path = "tests/trace_corpus.rs"
[[test]]
name = "unknown_opcode"
path = "tests/unknown_opcode.rs"
[[test]]
name = "verification_vectors"
path = "tests/verification_vectors.rs"
[[test]]
name = "wasm_trace_equivalence"
path = "tests/wasm_trace_equivalence.rs"
[[bench]]
name = "protocol_machine_runtime_bench"
path = "benches/protocol_machine_runtime_bench.rs"
harness = false
[dependencies.bincode]
version = "1.3"
[dependencies.cfg-if]
version = "1.0"
[dependencies.ciborium]
version = "0.2.2"
[dependencies.parking_lot]
version = "0.12"
[dependencies.rayon]
version = "1"
optional = true
[dependencies.serde]
version = "1.0"
features = [
"derive",
"derive",
]
[dependencies.serde_json]
version = "1.0"
[dependencies.telltale-theory]
version = "=17.0.0"
[dependencies.telltale-types]
version = "=17.0.0"
[dependencies.thiserror]
version = "1.0"
[dev-dependencies.assert_matches]
version = "1.5"
[dev-dependencies.serde_yaml]
version = "0.9"
[dev-dependencies.telltale-theory]
version = "=17.0.0"
[dev-dependencies.tempfile]
version = "3.2"
[dev-dependencies.wasm-bindgen-test]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.proptest]
version = "1.4"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2"
features = [
"js",
"js",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
[lints.clippy]
as_conversions = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_sign_loss = "warn"
cognitive_complexity = "warn"
fn_params_excessive_bools = "warn"
inefficient_to_string = "warn"
large_stack_arrays = "warn"
let_underscore_must_use = "deny"
missing_errors_doc = "warn"
missing_panics_doc = "warn"
missing_safety_doc = "deny"
module_name_repetitions = "allow"
must_use_candidate = "warn"
needless_collect = "warn"
needless_pass_by_value = "warn"
too_many_arguments = "warn"
too_many_lines = "warn"
trivially_copy_pass_by_ref = "warn"
vec_init_then_push = "warn"
[lints.rust]
missing_docs = "warn"
unreachable_pub = "warn"
unused_must_use = "deny"