cobs 0.5.1

This is an implementation of the Consistent Overhead Byte Stuffing (COBS) algorithm. COBS is an algorithm for transforming a message into an encoding where a specific value (the "sentinel" value) is not used. This value can then be used to mark frame boundaries in a serial communication channel.
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 = "2024"
rust-version = "1.87"
name = "cobs"
version = "0.5.1"
authors = [
    "Allen Welkie <>",
    "James Munns <james@onevariable.com>",
    "Robin Mueller <robin.mueller.m@gmail.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
    This is an implementation of the Consistent Overhead Byte Stuffing (COBS) algorithm.
    COBS is an algorithm for transforming a message into an encoding where a specific value
    (the "sentinel" value) is not used. This value can then be used to mark frame boundaries
    in a serial communication channel. """
readme = "README.md"
keywords = [
    "consistent",
    "overhead",
    "byte",
    "stuffing",
    "encoding",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/jamesmunns/cobs.rs"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--generate-link-to-definition"]

[features]
alloc = []
default = ["std"]
std = [
    "alloc",
    "thiserror/std",
]
use_std = ["std"]

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

[[bench]]
name = "main"
path = "benches/main.rs"
harness = false

[dependencies.defmt]
version = "1"
optional = true

[dependencies.heapless]
version = "0.9"

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true

[dependencies.thiserror]
version = "2"
default-features = false

[dev-dependencies.criterion]
version = "0.8"

[dev-dependencies.quickcheck]
version = "1"

[dev-dependencies.rand]
version = "0.10"