[package] name = "femtopb" authors = ["David Flemström "] description = "A no-std, no-alloc set of tools for protobuf encoding and decoding" repository = "https://github.com/dflemstr/femtopb" categories = ["embedded", "encoding", "no-std", "no-std::no-alloc"] keywords = ["protobuf", "proto"] version = "0.5.0" edition = "2021" license = "Apache-2.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] femtopb-derive = { path = "derive", version = "0.5.0" } no-panic = { version = "0.1.30", optional = true } defmt = { version = "0.3.8", optional = true } [dev-dependencies] bytes = "1.7.0" proptest = "1.5.0" proptest-derive = "0.5.0" prost = "0.13.1" [features] # Enable link-time assertions ensuring that core femtopb functions can't possibly panic. # It is recommended to only enable this feature to perform a "test build" (but still using the "release" profile/with # optimizations turned on) as enabling it for release builds might impact code generation negatively. # Useful in embedded contexts where you want to write ultra-reliable code that can't fail unexpectedly, want to minimize # code size without having to resort to `panic = "abort"`, or want to avoid trapping into the panic handler for other # reasons. assert-no-panic = ["dep:no-panic"] defmt = ["dep:defmt"] [profile.release] opt-level = 3 lto = "fat" codegen-units = 1 [workspace] members = ["build", "examples/*", "derive"]