Are there any serialization crates that do Varint encoding without Zigzag encoding?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • pguint

    unsigned integer types extension for PostgreSQL

  • There are two other options, but they both seem pretty bad as well. I could potentially use this Postgres extension to create a Postgres unsigned int data type, but it just seems kinda risky betting my entire database on this relatively small project.

  • ssh_format

    Data format used to communicate with openssh mux server.

  • It isn't. I wrote my own serializer ssh_format and you could simply write a mcro_rules to delegate most fm to underlying serializer.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • parity-scale-codec

    Lightweight, efficient, binary serialization and deserialization codec

  • https://github.com/paritytech/parity-scale-codec SCALE is used for blockchain stuff but could be useful for your use case. Is very Rust centric but still usable in other languages(like JS). It comes with a "compact encoding" feature that is used mostly for unsigned integers of variable size. And with https://github.com/paritytech/scale-info you can generate type registries/schemas that can be serialized in SCALE it self(or JSON or anything) in case you have clients that don't know the structure of the binary data.

  • scale-info

    Info about SCALE encodable Rust types

  • https://github.com/paritytech/parity-scale-codec SCALE is used for blockchain stuff but could be useful for your use case. Is very Rust centric but still usable in other languages(like JS). It comes with a "compact encoding" feature that is used mostly for unsigned integers of variable size. And with https://github.com/paritytech/scale-info you can generate type registries/schemas that can be serialized in SCALE it self(or JSON or anything) in case you have clients that don't know the structure of the binary data.

  • postcard

    A no_std + serde compatible message library for Rust

  • For example, look at the Postcard serializer for inspiration.

  • serde

    Serialization framework for Rust

  • No, you still derive Serialize and Deserialize for your data types. Those traits are totally independent of the Serializer/Deserializer traits. When you perform the actual serialization/deserialization you specify which serializer/deserializer to use. See the docs for more info.

  • speedy

    A fast binary serialization framework (by koute)

  • I would look at speedy which is, as the name suggests, pretty fast. It encodes varints in a way that's different from LEB128, and is much quicker to both encode and decode. The format they use is at the top of this file -- you can do it just with a couple of shifts and masks, and decoding is similarly fast. Speedy also hard-branches in the code with a switch statement based on how many bytes you need, which in my tests is something like 2x faster than the alternative, despite it being a branch (it's just turns into a lookup table in assembly).

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Serde-YAML for Rust has been archived

    2 projects | news.ycombinator.com | 26 Mar 2024
  • YAML decoder for rust discontinued do to maintainer "not using YAML anymore"

    1 project | news.ycombinator.com | 25 Mar 2024
  • I pre-released my project "json-responder" written in Rust

    11 projects | dev.to | 21 Jan 2024
  • Next Validator of Rust–Valitron

    2 projects | news.ycombinator.com | 25 Sep 2023
  • Serde is no longer shipping precompiled blobs

    1 project | news.ycombinator.com | 29 Aug 2023