m2m-protocol 0.4.0

M2M Protocol - Intelligent machine-to-machine LLM communication with learned compression
Documentation
[[bin]]
name = "agent-town"
path = "src/bin/agent_town.rs"
required-features = ["crypto"]

[[bin]]
name = "benchmark"
path = "src/bin/benchmark.rs"

[[bin]]
name = "m2m"
path = "src/bin/m2m.rs"

[[bin]]
name = "m2m-ai-test"
path = "src/bin/m2m_ai_test.rs"

[[bin]]
name = "m2m_stress_test"
path = "src/bin/m2m_stress_test.rs"

[[bin]]
name = "token_analysis"
path = "src/bin/token_analysis.rs"

[[bin]]
name = "token_benchmark"
path = "src/bin/token_benchmark.rs"

[[bin]]
name = "token_native_benchmark"
path = "src/bin/token_native_benchmark.rs"

[build-dependencies.phf_codegen]
version = "0.11"

[dependencies.anyhow]
version = "1.0"

[dependencies.axum]
version = "0.7"

[dependencies.base64]
version = "0.22"

[dependencies.brotli]
version = "7.0"

[dependencies.bytes]
version = "1.0"

[dependencies.chacha20poly1305]
optional = true
version = "0.10"

[dependencies.chrono]
features = ["serde"]
version = "0.4"

[dependencies.clap]
features = ["derive"]
version = "4"

[dependencies.crc32fast]
version = "1.5"

[dependencies.dirs]
version = "5.0"

[dependencies.flate2]
version = "1.0"

[dependencies.futures]
version = "0.3"

[dependencies.h3]
version = "0.0.4"

[dependencies.h3-quinn]
version = "0.0.5"

[dependencies.hkdf]
optional = true
version = "0.12"

[dependencies.hmac]
optional = true
version = "0.12"

[dependencies.http]
version = "1.0"

[dependencies.http-body-util]
version = "0.1"

[dependencies.lazy_static]
version = "1.4"

[dependencies.ndarray]
version = "0.16"

[dependencies.petgraph]
version = "0.7"

[dependencies.phf]
features = ["macros"]
version = "0.11"

[dependencies.quinn]
version = "0.10"

[dependencies.rand]
optional = true
version = "0.8"

[dependencies.rcgen]
version = "0.12"

[dependencies.regex]
features = ["perf"]
version = "1.0"

[dependencies.reqwest]
default-features = false
features = ["json", "rustls-tls", "stream"]
version = "0.12"

[dependencies.rustls]
default-features = false
features = ["dangerous_configuration", "quic", "tls12"]
version = "0.21"

[dependencies.rustls-pemfile]
version = "1.0"

[dependencies.safetensors]
version = "0.4"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1.0"

[dependencies.sha2]
optional = true
version = "0.10"

[dependencies.thiserror]
version = "1.0"

[dependencies.tiktoken-rs]
version = "0.9"

[dependencies.tokenizers]
default-features = false
features = ["onig"]
version = "0.21"

[dependencies.tokio]
features = ["rt-multi-thread", "macros", "net", "sync", "time", "io-util"]
version = "1.0"

[dependencies.toml]
version = "0.8"

[dependencies.tower]
features = ["util"]
version = "0.4"

[dependencies.tower-http]
features = ["cors", "trace"]
version = "0.5"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
features = ["env-filter", "json"]
version = "0.3"

[dependencies.uuid]
features = ["v4"]
version = "1.0"

[dependencies.x25519-dalek]
features = ["static_secrets"]
optional = true
version = "2.0"

[dependencies.zeroize]
features = ["zeroize_derive"]
optional = true
version = "1.8"

[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5"

[dev-dependencies.dotenvy]
version = "0.15"

[dev-dependencies.hex-literal]
version = "0.4"

[dev-dependencies.proptest]
version = "1.5"

[dev-dependencies.rand_chacha]
version = "0.3"

[dev-dependencies.tempfile]
version = "3.0"

[dev-dependencies.tokio-test]
version = "0.4"

[features]
crypto = ["dep:hkdf", "dep:sha2", "dep:hmac", "dep:chacha20poly1305", "dep:x25519-dalek", "dep:rand", "dep:zeroize"]
default = []

[lib]
name = "m2m"
path = "src/lib.rs"

[lints.clippy]
assigning_clones = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
checked_conversions = "allow"
comparison_chain = "allow"
doc_markdown = "allow"
double_ended_iterator_last = "allow"
fn_params_excessive_bools = "allow"
format_push_string = "allow"
if_not_else = "allow"
ignored_unit_patterns = "allow"
implicit_clone = "allow"
implicit_saturating_sub = "allow"
inefficient_to_string = "allow"
io_other_error = "allow"
manual_div_ceil = "allow"
manual_is_power_of_two = "allow"
manual_let_else = "allow"
manual_map = "allow"
manual_range_contains = "allow"
manual_repeat_n = "allow"
manual_saturating_arithmetic = "allow"
manual_strip = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "allow"
needless_raw_string_hashes = "allow"
non_std_lazy_statics = "allow"
only_used_in_recursion = "allow"
option_if_let_else = "allow"
redundant_closure_for_method_calls = "allow"
ref_option = "allow"
return_self_not_must_use = "allow"
self_only_used_in_recursion = "allow"
significant_drop_tightening = "allow"
similar_names = "allow"
single_char_pattern = "allow"
single_match = "allow"
single_match_else = "allow"
struct_excessive_bools = "allow"
struct_field_names = "allow"
to_string_trait_impl = "allow"
too_many_lines = "allow"
trivially_copy_pass_by_ref = "allow"
uninlined_format_args = "allow"
unnecessary_wraps = "allow"
unreadable_literal = "allow"
unused_self = "allow"
useless_vec = "allow"

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
missing_docs = "warn"
unknown_lints = "allow"
unsafe_code = "warn"

[lints.rustdoc]
broken_intra_doc_links = "warn"
private_intra_doc_links = "warn"

[package]
authors = ["M2M Protocol Contributors"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["compression", "web-programming", "science"]
description = "M2M Protocol - Intelligent machine-to-machine LLM communication with learned compression"
edition = "2021"
keywords = ["llm", "compression", "m2m", "protocol", "ai"]
license = "Apache-2.0"
name = "m2m-protocol"
readme = "README.md"
repository = "https://github.com/infernet-org/m2m-protocol"
rust-version = "1.88"
version = "0.4.0"

[profile.dev]
debug = 2
opt-level = 0

[profile.release]
codegen-units = 1
lto = true
opt-level = 3
panic = "abort"
strip = true

[[test]]
name = "e2e_session"
path = "tests/e2e_session.rs"

[[test]]
name = "e2e_transport"
path = "tests/e2e_transport.rs"

[[test]]
name = "integration_openrouter"
path = "tests/integration_openrouter.rs"

[[test]]
name = "multi_agent_crypto"
path = "tests/multi_agent_crypto.rs"