TheSnowfield/bytelizer
GitHub: TheSnowfield/bytelizer
一个用现代 C 语言编写的高性能二进制打包解包库,通过宏和内联优化实现极致轻量。
Stars: 6 | Forks: 2
## Bytelizer
Bytelizer 是一个用现代 C 语言编写的二进制打包/解包库,
专注于高性能和轻量化。
功能特性:
- 用于后期数据插入/填充的锚点
- 屏障 (或称为段/包)
- 长度前缀支持
- 静态 Protobuf 结构声明
- 字节序
几乎所有函数和变量都进行了宏化或内联处理,以实现编译器级别的静态优化。
[](#)
[](./blob/main/LICENSE)
## 快速指南 (C 语言)
```
typedef struct {
uint16_t a;
uint16_t b;
uint32_t c;
} example_t;
// the generic way in c
example_t _example = {
.a = 0x1234,
.b = 0x5678,
.c = 0xDEADBEEF
};
// the equivalent in bytelizer,
// allocates 64 bytes on the stack.
bytelizer_alloc(_ctx, 64); {
bytelizer_put_uint16(_ctx, 0x1234);
bytelizer_put_uint16(_ctx, 0x5678);
bytelizer_put_uint32(_ctx, 0xDEADBEEF);
}
bytelizer_destroy(_ctx);
```
## 快速指南 (BIT 语言)
```
[mode: pack]
[name: pack_example] bytes {
uint16 0x1234;
uint16 0x5678;
uint32 0xDEADBEEF;
}
```
## 许可证
基于 GPLv2 协议授权 ❤。
标签:Bytelizer, GPLv2, LangChain, Length Prefix, 二进制处理, 位操作, 内存操作, 内核驱动, 内联函数, 字节序处理, 宏定义, 客户端加密, 嵌入式开发, 数据序列化, 数据打包, 数据结构, 网络协议, 解包库, 轻量级, 静态优化