links_nonblocking 0.2.12

Nonblocking implementation of the links_nonblocking crate
Documentation
[package]
name = "links_nonblocking"
version.workspace = true
authors.workspace = true
readme.workspace = true
license-file.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

description = "Nonblocking implementation of the links_nonblocking crate"

[dependencies]
# networking nonblocking
mio = { workspace = true } # epoll wrapper

# blocking & nonblocking
bytes = { workspace = true }                       # read buffer
links_core = { workspace = true, optional = true } # traits

log = { workspace = true }

slab = { workspace = true } # used by poller

byteserde = { workspace = true } # byteserde::utils::hex::to_hex_pretty #TODO move to seperate hex_util crate

lazy_static = { workspace = true } # used by common poller

spin = { workspace = true } # spin mutex

chrono = { workspace = true }


[dev-dependencies]

env_logger = { workspace = true }
num-format = { workspace = true }

byteserde_types = { workspace = true }  # required to setup unit test models
byteserde_derive = { workspace = true } # required to setup unit test models


criterion = { workspace = true } # required to setup benchmarks
rand = { workspace = true }      # required to setup benchmarks

serde = { workspace = true }      # required to exmples
serde_json = { workspace = true } # required to exmples


[features]
default = ["dep:links_core"]
full = ["unittest"]
unittest = [
    "dep:links_core",
    "links_core/unittest", # enables links_core::prelude::unitest::* , # which provides test implementation of the Protocol trait for test Messenger 
]


# BENCHMARKS
[[bench]]
name = "01_channel_rx_tx_bench"
harness = false

[[bench]]
name = "02_message_ser_des"
harness = false

[[bench]]
name = "03_nonblocking_bench"
harness = false

[[bench]]
name = "04_framer_nonblocking_bench"
harness = false


[[bench]]
name = "05_messender_nonblocking_bench"
harness = false


[[bench]]
name = "06_clt2clt_nonblocking_busywait_bench"
harness = false
required-features = ["unittest"]

[[bench]]
name = "07_sender_ref2recver_ref_nonblocking_busywait_bench"
harness = false
required-features = ["unittest"]

# EXAMPLES
[[example]]
name = "01_clt2clt_nonblocking_busywait_example"
required-features = ["unittest"]

[[example]]
name = "02_clt2svcpool_nonblocking_busywait_example"
required-features = ["unittest"]

[[example]]
name = "03_clt-sender2svc-sender_both-recver-spawned_nonblocking_busywait_example"
required-features = ["unittest"]

[[example]]
name = "04_clt-sender-ref2svc-sender-ref_both-recver-ref-spawned_nonblocking_busywait_example"
required-features = ["unittest"]