[package] name = "mpstthree" version = "0.1.17" authors = ["NicolasLagaillardie "] edition = "2021" rust-version = "1.77" description = "A library implementing Multiparty Session Types for 2 or more participants" readme = "README.md" homepage = "https://github.com/NicolasLagaillardie/mpst_rust_github" repository = "https://github.com/NicolasLagaillardie/mpst_rust_github" license = "MIT OR Apache-2.0" keywords = ["multiparty", "session", "affine", "multicrusty", "timed"] documentation = "https://docs.rs/mpstthree" categories = ["concurrency"] # include = [ # "/benches/**", # "/build.rs", # "/Cargo.toml", # "/LICENSE-APACHE", # "/LICENSE-MIT", # "/README.md", # "/src/**", # "/tests/**", # "/examples/**", # "main.rs", # ] exclude = [ ".vscode/", ".travis.yml", "codecov.yml", ".gitignore", ".github/", ".cargo_vcs_info.json", "scripts/", "example/", "outputs/", "cfsm/", "compile_time/", "graphs_bench/", "rustfmt_0.toml", "notes.txt", "result.rs", "results/", "save/", "expand/", "target/", ] autotests = false autobenches = false ################################### Workspace [workspace] members = ["mpst_seq_proc"] ################################### Lib [lib] bench = false ################################### Badges [badges] maintenance = { status = "actively-developed" } ################################### Bin [[bin]] name = "mpst" path = "main.rs" bench = false ################################### Tests [[test]] name = "checking" path = "tests/checking.rs" required-features = ["macros_multiple", "checking"] [[test]] name = "basics" path = "tests/basics.rs" required-features = ["checking"] [[test]] name = "binary" path = "tests/binary.rs" required-features = ["default"] [[test]] name = "cancel" path = "tests/cancel.rs" required-features = ["baking"] [[test]] name = "macros_multiple" path = "tests/macros_multiple.rs" required-features = ["macros_multiple"] [[test]] name = "macros_simple" path = "tests/macros_simple.rs" required-features = ["macros_simple"] [[test]] name = "baking" path = "tests/baking.rs" required-features = ["baking", "checking"] [[test]] name = "extra" path = "tests/extra.rs" required-features = ["baking"] [[test]] name = "interleaved" path = "tests/interleaved.rs" required-features = ["baking_interleaved"] [[test]] name = "binary_atmp" path = "tests/binary_atmp.rs" required-features = ["binary_atmp"] [[test]] name = "baking_atmp" path = "tests/baking_atmp.rs" required-features = ["baking_atmp"] [[test]] name = "baking_message" path = "tests/baking_message.rs" required-features = ["baking", "checking"] [[test]] name = "nuscr" path = "tests/nuscr.rs" required-features = ["baking_atmp", "top_down_nuscr"] ################################### Artifact examples [[example]] name = "my_basic" path = "examples/artifact/my_basic.rs" required-features = ["baking"] [[example]] name = "basic" path = "examples/artifact/basic.rs" required-features = ["baking"] ################################### ATMP artifact examples [[example]] name = "atmp_my_basic" path = "examples/artifact_atmp/my_basic.rs" required-features = ["baking_atmp"] [[example]] name = "atmp_basic" path = "examples/artifact_atmp/basic.rs" required-features = ["baking_atmp"] ################################### Readme example [[example]] name = "readme" path = "examples/readme_example.rs" required-features = ["mpst"] ################################### ATMP Artifact ########### Generators [[example]] name = "generator_servo" path = "examples/artifact_atmp/generator_files/servo.rs" required-features = ["top_down_nuscr"] [[example]] name = "generator_three_buyers" path = "examples/artifact_atmp/generator_files/three_buyers.rs" required-features = ["top_down_nuscr"] [[example]] name = "generator_remote_data" path = "examples/artifact_atmp/generator_files/remote_data.rs" required-features = ["top_down_nuscr"] ########### Generators [[example]] name = "generated_servo" path = "examples/artifact_atmp/generated_files/Servo.rs" required-features = ["baking_atmp"] [[example]] name = "generated_three_buyers" path = "examples/artifact_atmp/generated_files/ThreeBuyers.rs" required-features = ["baking_atmp"] [[example]] name = "generated_remote_data" path = "examples/artifact_atmp/generated_files/RemoteData.rs" required-features = ["baking_atmp"] ################################### Ping-Pong ######### Ping-Pong start ######### Ping-Pong end ################################### Profil [profile.release] debug = true ################################### Dependencies [dependencies] # mpst-seq-proc = { path = "mpst_seq_proc" } mpst-seq-proc = "0.1.14" crossbeam-channel = "0.5.12" either = "1.11.0" # For HTTP hyper = { version = "1.2.0", features = ["full"], optional = true } hyper-tls = { version = "0.6.0", optional = true } hyper-util = { version = "0.1.3", features = ["full"] } http-body-util = "0.1" tokio = { version = "1.33.0", features = ["full"], optional = true } # For kMC regex = { version = "1.10.4", optional = true } petgraph = { version = "0.6.4", optional = true } # Protobuf libraries protobuf = { version = "3.4.0", features = ["with-bytes"] } protobuf-codegen = "3.4.0" protoc-bin-vendored = "3.0.0" # Parser for Top-Down once_cell = {version = "1.19.0", optional = true} Inflector = "0.11.4" # Rand rand = "0.8.5" ################################### Dev-dependencies for tests/benches [dev-dependencies] criterion = { version = "0.5.1", features = ["html_reports"] } trybuild = "1.0.85" ntest = "0.9.0" ################################### Features [features] default = [] mpst = ["default"] binary_atmp = ["default"] macros_simple = ["mpst"] macros_multiple = ["mpst", "macros_simple"] checking = ["mpst", "regex", "petgraph"] baking = ["mpst", "macros_multiple"] interleaved = ["baking"] # For interleaved sessions baking_atmp = ["binary_atmp", "mpst"] baking_interleaved = ["baking", "interleaved"] baking_checking = ["baking", "checking"] baking_atmp_interleaved = ["baking_atmp", "interleaved"] transport_tcp = ["default"] transport_udp = ["default"] top_down_nuscr = ["default", "regex", "once_cell"] # transport_http = ["default", "hyper", "hyper-tls", "tokio"] # transport = ["transport_tcp", "transport_udp", "transport_http"] transport = ["transport_tcp", "transport_udp"] transport_macros_multiple = [ "macros_multiple", "transport", ] # For test compile examples protobuf_feature = [] affine_atmp = ["baking", "baking_atmp"] full_without_checking = ["baking", "transport", "interleaved"] full = ["baking_checking", "transport", "baking_atmp", "interleaved"] ################################### Doc handling for all-features # docs.rs-specific configuration [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "doc_cfg"] ################################### Rust playground features [package.metadata.playground] features = ["full", "interleaved"]