コンテンツにスキップ

postcard — Crate 詳細

postcard

Mature no_std

no_std 向けのコンパクトなシリアライズ/デシリアライズライブラリ。serde 互換で、バッファに対して直接エンコード/デコードでき、組み込みの通信(バイナリプロトコル)に適します。

A no_std-focused, compact serde-compatible serialization format designed for embedded use (buffer-oriented encode/decode).

バージョン
1.0.10
ライセンス
MIT OR Apache-2.0
メンテナンス
活発に開発中

コード例

ヒープ不要で、あらかじめ用意したバッファに対してエンコード/デコードできます。

固定バッファへシリアライズして送る
#![no_std]
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct Msg {
id: u16,
value: i32,
}
fn encode(buf: &mut [u8]) -> usize {
let msg = Msg { id: 42, value: -7 };
let used = postcard::to_slice(&msg, buf).unwrap().len();
used
}
fn decode(buf: &[u8]) -> Msg {
postcard::from_bytes(buf).unwrap()
}

関連 Crates

関連記事