telltale-machine 17.0.0

Protocol machine for choreographic session type protocols
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"