[package]
edition = "2021"
rust-version = "1.85.0"
name = "rustzmq2"
version = "0.1.0"
authors = [
"PoHsuan Lai <pohsuanlai0208@gmail.com>",
"Alexei Kornienko <alexei.kornienko@gmail.com>",
"Ryan Butler <thebutlah@gmail.com>",
"Kyle Kelley <rgbkrk@gmail.com>",
]
build = false
exclude = [
".cargo/",
".github/",
"c_benches/",
"python/",
"docs/profiles/",
"docs/upstream-announcement.md",
"release.toml",
"rustfmt.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A native async Rust implementation of ZeroMQ"
documentation = "https://docs.rs/rustzmq2"
readme = "README.md"
keywords = [
"zeromq",
"zmq",
"zmtp",
"messaging",
"async",
]
categories = [
"network-programming",
"asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/PoHsuanLai/rustzmq2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
__profiling = []
all-transports = [
"ipc",
"tcp",
"inproc",
]
curve = ["dep:crypto_box"]
default = [
"tokio",
"all-transports",
"curve",
]
inproc = ["dep:crossbeam-channel"]
ipc = []
smol = [
"dep:smol",
"dep:async-io",
"dep:event-listener",
"dep:asynchronous-codec",
]
tcp = []
tokio = [
"dep:tokio",
"dep:tokio-util",
]
[lib]
name = "rustzmq2"
path = "src/lib.rs"
bench = false
[[example]]
name = "01_req_rep_client"
path = "examples/01_req_rep_client.rs"
[[example]]
name = "01_req_rep_client_opts"
path = "examples/01_req_rep_client_opts.rs"
[[example]]
name = "01_req_rep_server"
path = "examples/01_req_rep_server.rs"
[[example]]
name = "02_multipart_client"
path = "examples/02_multipart_client.rs"
[[example]]
name = "02_multipart_server"
path = "examples/02_multipart_server.rs"
[[example]]
name = "03_broker_server"
path = "examples/03_broker_server.rs"
[[example]]
name = "04_pubsub_client"
path = "examples/04_pubsub_client.rs"
[[example]]
name = "04_pubsub_client_opts"
path = "examples/04_pubsub_client_opts.rs"
[[example]]
name = "04_pubsub_server"
path = "examples/04_pubsub_server.rs"
[[example]]
name = "04_pubsub_server_opts"
path = "examples/04_pubsub_server_opts.rs"
[[example]]
name = "05_topics_client"
path = "examples/05_topics_client.rs"
[[example]]
name = "05_topics_server"
path = "examples/05_topics_server.rs"
[[example]]
name = "06_xpub_server"
path = "examples/06_xpub_server.rs"
[[example]]
name = "06_xpub_server_opts"
path = "examples/06_xpub_server_opts.rs"
[[example]]
name = "06_xsub_forwarder"
path = "examples/06_xsub_forwarder.rs"
[[example]]
name = "06_xsub_forwarder_client"
path = "examples/06_xsub_forwarder_client.rs"
[[example]]
name = "07_pipeline_forwarder"
path = "examples/07_pipeline_forwarder.rs"
[[example]]
name = "07_pipeline_sink"
path = "examples/07_pipeline_sink.rs"
[[example]]
name = "07_pipeline_ventilator"
path = "examples/07_pipeline_ventilator.rs"
[[example]]
name = "07_pipeline_worker"
path = "examples/07_pipeline_worker.rs"
[[example]]
name = "08_scatter_gather_gather"
path = "examples/08_scatter_gather_gather.rs"
[[example]]
name = "08_scatter_gather_scatter"
path = "examples/08_scatter_gather_scatter.rs"
[[example]]
name = "09_pair"
path = "examples/09_pair.rs"
[[example]]
name = "10_security_plain"
path = "examples/10_security_plain.rs"
[[example]]
name = "11_security_curve"
path = "examples/11_security_curve.rs"
required-features = ["curve"]
[[example]]
name = "12_channel"
path = "examples/12_channel.rs"
[[example]]
name = "13_router_dealer"
path = "examples/13_router_dealer.rs"
[[example]]
name = "14_smol_req_rep"
path = "examples/14_smol_req_rep.rs"
required-features = ["smol"]
[[example]]
name = "profile_pub_fanout"
path = "examples/profile_pub_fanout.rs"
required-features = ["__profiling"]
[[example]]
name = "profile_pub_sub"
path = "examples/profile_pub_sub.rs"
required-features = ["__profiling"]
[[test]]
name = "channel"
path = "tests/channel.rs"
[[test]]
name = "dealer_split"
path = "tests/dealer_split.rs"
[[test]]
name = "engine_coverage"
path = "tests/engine_coverage.rs"
[[test]]
name = "error_handling"
path = "tests/error_handling.rs"
[[test]]
name = "helpers"
path = "tests/helpers.rs"
[[test]]
name = "inproc"
path = "tests/inproc.rs"
[[test]]
name = "message"
path = "tests/message.rs"
[[test]]
name = "pair"
path = "tests/pair.rs"
[[test]]
name = "pub_sub"
path = "tests/pub_sub.rs"
[[test]]
name = "pub_sub_compliant"
path = "tests/pub_sub_compliant.rs"
[[test]]
name = "pub_sub_compliant_reverse"
path = "tests/pub_sub_compliant_reverse.rs"
[[test]]
name = "reconnection_compliant"
path = "tests/reconnection_compliant.rs"
[[test]]
name = "req_rep"
path = "tests/req_rep.rs"
[[test]]
name = "req_rep_compliant"
path = "tests/req_rep_compliant.rs"
[[test]]
name = "req_router_dealer_rep"
path = "tests/req_router_dealer_rep.rs"
[[test]]
name = "router_dealer_compliant"
path = "tests/router_dealer_compliant.rs"
[[test]]
name = "router_split"
path = "tests/router_split.rs"
[[test]]
name = "scatter_gather"
path = "tests/scatter_gather.rs"
[[test]]
name = "security_curve"
path = "tests/security_curve.rs"
[[test]]
name = "security_curve_compliant"
path = "tests/security_curve_compliant.rs"
[[test]]
name = "security_plain"
path = "tests/security_plain.rs"
[[test]]
name = "security_plain_compliant"
path = "tests/security_plain_compliant.rs"
[[test]]
name = "security_zap"
path = "tests/security_zap.rs"
[[test]]
name = "socket_options"
path = "tests/socket_options.rs"
[[test]]
name = "socket_options_extras"
path = "tests/socket_options_extras.rs"
[[test]]
name = "xpub_sub"
path = "tests/xpub_sub.rs"
[[test]]
name = "xsub"
path = "tests/xsub.rs"
[[bench]]
name = "codec"
path = "benches/codec.rs"
harness = false
[[bench]]
name = "compare_libzmq"
path = "benches/compare_libzmq.rs"
harness = false
[[bench]]
name = "engine"
path = "benches/engine.rs"
harness = false
[[bench]]
name = "security"
path = "benches/security.rs"
harness = false
required-features = ["curve"]
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
[dependencies.async-io]
version = "2"
optional = true
[dependencies.asynchronous-codec]
version = "0.7"
optional = true
[dependencies.bitflags]
version = "2"
[dependencies.bytes]
version = "1"
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.crypto_box]
version = "0.9"
optional = true
[dependencies.event-listener]
version = "5"
optional = true
[dependencies.flume]
version = "0.12"
features = ["async"]
default-features = false
[dependencies.futures]
version = "0.3"
[dependencies.log]
version = "0.4"
[dependencies.once_cell]
version = "1"
[dependencies.parking_lot]
version = "0.12"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.rand]
version = "0.10"
[dependencies.regex]
version = "1"
features = [
"std",
"unicode-perl",
]
default-features = false
[dependencies.slab]
version = "0.4"
[dependencies.smallvec]
version = "1"
features = ["union"]
[dependencies.smol]
version = "2"
optional = true
[dependencies.socket2]
version = "0.6"
features = ["all"]
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
optional = true
[dependencies.tokio-util]
version = "0.7"
features = [
"codec",
"compat",
]
optional = true
[dependencies.uuid]
version = "1"
features = ["v4"]
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.hex]
version = "0.4"
[dev-dependencies.pretty_env_logger]
version = "0.5"
[dev-dependencies.zmq2]
version = "0.5"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[profile.profiling]
debug = 2
split-debuginfo = "packed"
inherits = "release"
strip = false