All Projects → sile → bytecodec

sile / bytecodec

Licence: MIT license
A tiny Rust framework for implementing encoders/decoders of byte-oriented protocols

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to bytecodec

urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (+142.86%)
Mutual labels:  serialization, encoder, decoder
Codable Diy Kit
A template for creating your own Swift Codable encoders and decoders
Stars: ✭ 207 (+885.71%)
Mutual labels:  encoder, decoder
Xmlschema
XML Schema validator and data conversion library for Python
Stars: ✭ 201 (+857.14%)
Mutual labels:  encoder, decoder
Elle
The Elle coroutine-based asynchronous C++ development framework.
Stars: ✭ 459 (+2085.71%)
Mutual labels:  serialization, asynchronous
Ffmediatoolkit
FFMediaToolkit is a cross-platform video decoder/encoder library for .NET that uses FFmpeg native libraries. It supports video frames extraction, reading stream metadata and creating videos from bitmaps in any format supported by FFmpeg.
Stars: ✭ 156 (+642.86%)
Mutual labels:  encoder, decoder
Gojay
fastest JSON encoder/decoder with powerful stream API for Golang
Stars: ✭ 2,009 (+9466.67%)
Mutual labels:  encoder, decoder
Enmime
MIME mail encoding and decoding package for Go
Stars: ✭ 246 (+1071.43%)
Mutual labels:  encoder, decoder
Wav
Battle tested Wav decoder/encoder
Stars: ✭ 139 (+561.9%)
Mutual labels:  encoder, decoder
Esa Restlight
ESA Restlight is a lightweight and rest-oriented web framework.
Stars: ✭ 67 (+219.05%)
Mutual labels:  serialization, asynchronous
BatchEncoder
BatchEncoder is an audio files conversion software.
Stars: ✭ 145 (+590.48%)
Mutual labels:  encoder, decoder
rmarsh
Ruby Marshal 4.8 encoder/decoder in Golang. Why? Who knows.
Stars: ✭ 15 (-28.57%)
Mutual labels:  encoder, decoder
Salsanext
Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving
Stars: ✭ 153 (+628.57%)
Mutual labels:  encoder, decoder
Base62
Base62 encoder and decoder for arbitrary data
Stars: ✭ 141 (+571.43%)
Mutual labels:  encoder, decoder
Ks265codec
ks cloud hevc(h265) encoder decoder test and description
Stars: ✭ 192 (+814.29%)
Mutual labels:  encoder, decoder
Cityengine Sdk
CityEngine is a 3D city modeling software for urban design, visual effects, and VR/AR production. With its C++ SDK you can create plugins and standalone apps capable to execute CityEngine CGA procedural modeling rules.
Stars: ✭ 137 (+552.38%)
Mutual labels:  encoder, decoder
Codablecsv
Read and write CSV files row-by-row or through Swift's Codable interface.
Stars: ✭ 214 (+919.05%)
Mutual labels:  encoder, decoder
Swift Html Entities
HTML5 spec-compliant character encoder/decoder for Swift
Stars: ✭ 130 (+519.05%)
Mutual labels:  encoder, decoder
Silk V3 Decoder
kn007's blog
Stars: ✭ 1,832 (+8623.81%)
Mutual labels:  encoder, decoder
Reservoir
Android library to easily serialize and cache your objects to disk using key/value pairs.
Stars: ✭ 674 (+3109.52%)
Mutual labels:  serialization, asynchronous
sms
A Go library for encoding and decoding SMSs
Stars: ✭ 37 (+76.19%)
Mutual labels:  encoder, decoder

bytecodec

bytecodec Documentation Actions Status Coverage Status License: MIT

A tiny Rust framework for implementing encoders/decoders of byte-oriented protocols.

Documentation

Features

  • Suited for byte-oriented protocols
  • Incremental encoding/decoding:
    • Encode and Decode traits support incremental encoding and decoding
    • The number of bytes consumed in an execution of encode/decode methods can be completely controlled by the caller
    • This property makes it easy to implement, for example, multi-stream multiplexing, transmittin rate control and asynchronous I/O
  • Composable:
    • By combining multiple encoders (or decoders), it is easy to build a more complex encoder (or decoder)
    • See the examples of EncodeExt and DecodeExt traits
  • Reduced number of memory copies:
    • In design, only two memory copies are required
    • Considering in the decode process, one is the copy from the actual stream (e.g., TCP socket) to the decoding buffer, the other one is the copy to construct the item from the buffer.
  • Supports some serde implemention crates:
    • Currently serde_json and bincode are supported (as optional featuers)
    • See json_codec and bincode_codec modules
  • Easily adapt to synchronous I/O, asynchronous I/O, UDP, etc
  • Trackable errors:
    • By using trackable crate, the location where an error occurred can be easily specified
    • See EncodeExt::map_err and DecodeExt::map_err methods
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].