1
0
mirror of https://github.com/fumiama/simple-protobuf.git synced 2026-06-05 00:10:24 +08:00
Go to file
fumiama e0b88c0c63 实现
2021-05-17 16:48:38 +08:00
2021-05-17 16:48:38 +08:00
2021-05-17 16:48:38 +08:00
2021-05-17 13:02:54 +08:00
2021-05-17 16:48:38 +08:00
2021-05-17 16:48:38 +08:00
2021-05-17 16:48:38 +08:00
2021-05-17 16:48:38 +08:00
2021-05-17 16:48:38 +08:00

simple-protobuf

English | 简体中文

A simplified variant of Google's ProtoBuf.

format

A simple-protobuf file can be filled into a C struct directly, but no pointer is supported.

The sp file format is shown below.

[struct_len] + n*[[type][data_len][data]]
  1. type is an one-byte number indicating the type length(2^type^bytes) of this struct item.
  2. *_len is a length-variable LE number(less than 2^57^) indicating the length of *.
  3. data contains data_len bytes of the data.

usage

You can read test.c to find out the detailed usage.

Save a struct

1. Create items type info array

This array has type uint8_t, which indicates the length of each struct item. Note that the length of each item must be 2^n^.

2. Align items type info array

You can use function align_struct to align each item to the proper size.

If you are sure that your struct has been aligned, you won't need to run align_struct.

3. Call set_pb to save

Read into a struct

1. Open file

2. Call get_pb to read

Description
A simplified variant of Google's ProtoBuf.
Readme GPL-3.0 91 KiB
Languages
C 91.8%
CMake 8.2%