Skip to content

Commit

Permalink
Revised Encoding API and wire format (#764)
Browse files Browse the repository at this point in the history
* Remove KnownEncoding enum and replace it with consts

* Fix no_std

* Encoding encoder (#746)

* Encoding contains a mapping

* Add forgotten file

* Provide default encoder

* Refine encoder

* Fix encoding codec

* Do not change the protocol representation

* Accept Cow<'static, str> in EncodingMapping trait

* Improve Value::Display

* Fix doctests

* Bump EncodingPrefix to u16. Add IANA encoding mapping.

* Improve doc

* Remove generic from Encoding::starts_with

* Remove Display impl for Encoding

* Improve doc

* Improve doc

* Improve encoding parsing

* Improve comments

* Improve doc

* Encoding suffix bitflag

* Encoder/Decoder traits take self

* Rename encoding() to with_encoding()

* Make Value, ZBuf, SingleOrVec empty() const

* Derive Encoder for &mut u* and i*

* Integers are encoded as le_bytes are not as string

* Integers are encoded as le_bytes are not as string

* Fix doctest

* Refine default encoding mapping

* IANA mapping starts from 1024

* Move IANA encoding to zneoh-ext

* Improve docs

* Improve DefaultEncoding

* Add From<String> for ZBuf

* Remove Value and Sample Display trait impl

* Encoder/Decoder operate on ZBuf

* Payload type. Put takes Into<Payload>.

* Flat sample Value to Payload and Encoding fields

* Add payload.rs

* Polish up Publication

* Add serde_cbor::Value as supported DefaultSerializer supported types

* Add serde_pickle::Value as supported DefaultSerializer supported types

* Add serde_yaml::Value as supported DefaultSerializer supported types

* Impl TryFrom<serde_*> for Payload

* Remove encoding folder

* Polish up Value and Encoding

* Fix doctest

* Fix some erroneous prelude usage

* Fix wrong typedef in publication

* Encoding Id and Schema

* Encoding Id and Schema

* Fix encoding w_len

* Wrapper type for Encoding

* Add forgotten file

* Expand Encoding consts and add doc

* Polish doc

* Polishing up Payload

* Add EncodingMapping trait

* Improve docs

* Add deserialize in examples

* Use deserialize in examples

* Remove encoding from zenoh-ext

* Add repr(transparent) to Payload

* Improve encoding doc
  • Loading branch information
Mallets authored Mar 12, 2024
1 parent 77ab676 commit a8cdbbe
Show file tree
Hide file tree
Showing 72 changed files with 2,255 additions and 1,434 deletions.
140 changes: 112 additions & 28 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,12 @@ libloading = "0.8"
log = "0.4.17"
lz4_flex = "0.11"
nix = { version = "0.27", features = ["fs"] }
num_cpus = "1.15.0"
num_cpus = "1.16.0"
ordered-float = "4.1.1"
panic-message = "0.3.0"
paste = "1.0.12"
petgraph = "0.6.3"
phf = { version = "0.11.2", features = ["macros"] }
pnet = "0.34"
pnet_datalink = "0.34"
proc-macro2 = "1.0.51"
Expand All @@ -136,7 +137,9 @@ secrecy = { version = "0.8.0", features = ["serde", "alloc"] }
serde = { version = "1.0.154", default-features = false, features = [
"derive",
] } # Default features are disabled due to usage in no_std crates
serde_json = "1.0.94"
serde_cbor = "0.11.2"
serde_json = "1.0.114"
serde-pickle = "1.1.1"
serde_yaml = "0.9.19"
sha3 = "0.10.6"
shared_memory = "0.12.4"
Expand Down
3 changes: 2 additions & 1 deletion commons/zenoh-buffers/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ pub mod buffer {
let mut slices = self.slices();
match slices.len() {
0 => Cow::Borrowed(b""),
1 => Cow::Borrowed(slices.next().unwrap()),
// SAFETY: it's safe to use unwrap_unchecked() beacuse we are explicitly checking the length is 1.
1 => Cow::Borrowed(unsafe { slices.next().unwrap_unchecked() }),
_ => Cow::Owned(slices.fold(Vec::new(), |mut acc, it| {
acc.extend(it);
acc
Expand Down
Loading

0 comments on commit a8cdbbe

Please sign in to comment.