Skip to content

Commit 8841c8d

Browse files
Revise README for PackOS features and usage
Updated the README to improve clarity and detail about PackOS features and capabilities.
1 parent 8eb9207 commit 8841c8d

1 file changed

Lines changed: 31 additions & 22 deletions

File tree

README.md

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,34 @@
1-
# PackOS
2-
PackOS is a binary packing protocol with offset-indexed framing, designed for fast composition, random access, and reliable for RPC or BadgerDB workloads with **small blobs(<8kb)**(the size limitation maybe lifted to make it suitable for all purpose)
3-
It supports:
4-
All packing paths emit canonical headers, preserve offset domains, and support recursive structures. PAOSP ensures schema validation, GC neutrality, and reproducible output across variants.
5-
6-
- [x] Canonical encoding
7-
Emits offset-indexed binary frames with consistent headers and type tags.
8-
- [x] Sequential decoding
9-
Supports single-pass traversal with offset tracking and teardown-safe accessors.
10-
- [x] Random access decoding
11-
Enables direct lookup via offset domains without full unpacking.
12-
- [x] Recursive structure support
13-
Handles nested maps, slices, and tagged frames with offset provenance.
14-
- [x] Simple schema validation
15-
Validates type tags, offsets, and structure boundaries during decode.
16-
- [x] GC neutrality
17-
Avoids retained slices and ensures allocation discipline across packing paths.
18-
- [x] Reproducible output
19-
Guarantees stable binary layout across runs and variants.
20-
- [ ] General-purpose container support
21-
Supports arbitrarily large maps, slices, and tagged frames without size limits.
22-
- [ ] Generate big and nested complex structures above 8kb limit
1+
# PackOS
2+
3+
PackOS is a binary packing protocol with offset-indexed framing.
4+
It provides fast composition, random access, and reliable use in RPC or BadgerDB workloads with **small blobs (<8 KB)**.
5+
Future versions may lift the size limit for general-purpose use.
6+
7+
## Features
8+
- [x] **Canonical encoding**
9+
Offset-indexed binary frames with consistent headers and type tags
10+
11+
- [x] **Sequential decoding**
12+
Single-pass traversal with offset tracking and safe accessors
13+
14+
- [x] **Random access decoding**
15+
Direct lookup via offset domains; nested elements accessed by header first, then inner offsets
16+
17+
- [x] **Recursive structure support**
18+
Nested maps and tuples
19+
20+
- [x] **Schema-based validation, encoding, and decoding**
21+
Validates type tags, offsets, and structure boundaries during decode and encode
22+
Packs compactly by stripping field names
23+
24+
- [x] **Reproducible output**
25+
Stable binary layout across runs and variants
26+
27+
- [ ] **General-purpose container support**
28+
Arbitrarily large maps, slices, and tagged frames without size limits
29+
30+
- [ ] **Large structure generation**
31+
Big and nested complex structures above the 8 KB limit
2332

2433

2534
## Encoding Example

0 commit comments

Comments
 (0)