You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+31-28
Original file line number
Diff line number
Diff line change
@@ -11,52 +11,31 @@
11
11
12
12
> TypeScript implementation of the [Cap'n Proto](https://capnproto.org) serialization protocol.
13
13
14
-
Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. Think JSON, except binary. Or think [Protocol Buffers](https://github.com/protocolbuffers/protobuf), except faster. In fact, in benchmarks, Cap’n Proto is INFINITY TIMES faster than Protocol Buffers, because there is no encoding/decoding step. Start with the [Cap'n Proto Introduction](https://capnproto.org/index.html) for more detailed information on what this is about.
15
-
16
-
## Status
17
-
18
14
> [!WARNING]
19
-
> WARNING: THIS IS ALPHA QUALITY SOFTWARE. USE AT YOUR OWN RISK. AUTHORS ARE NOT RESPONSIBLE FOR LOSS OF LIMB, LIFE, SANITY, OR RETIREMENT FUNDS DUE TO THE USE OF THIS SOFTWARE. Feedback and contributions are welcome.
20
-
21
-
This project is a rework<sup>1</sup> of [jdiaz5513/capnp-ts](https://github.com/jdiaz5513/capnp-ts/) by Julián Díaz and under development (honestly more a playground at this stage). Until version `1.x.x` lands, the API can change from `0.x` to `0.y`.
15
+
> This is an alpha-quality software. please use at your own risk ([project status](#status)).
22
16
23
-
- Serialization: working, may be missing features
24
-
- Schema Compiler: working, may be missing features
25
-
- RPC: not implemented yet
17
+
Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. Think JSON, except binary. Or think [Protocol Buffers](https://github.com/protocolbuffers/protobuf), except faster. Cap’n Proto was built by [Kenton Varda](https://github.com/kentonv) to be used in [Sandstorm](https://capnproto.org/faq.html#sandstorm) and is now heavily used in [Cloudflare](https://capnproto.org/faq.html#cloudflare). Start with the [Cap'n Proto Introduction](https://capnproto.org/index.html) for more detailed information on what this is about.
26
18
27
-
**<sup>1</sup> Changes from `capnp-ts`:**
28
-
29
-
-[x] Internal refactors and simplifications as was playing around.
30
-
-[x] Compiler, runtime, and std lib published via a single and compact ESM-only package with subpath exports.
31
-
-[x] Compiler updated to use Typescript v5 API
32
-
-[x] Output files can be `.ts` (new), `.js` (ESM instead of CJS), and `.d.ts` and has no `.capnp` suffix.
33
-
-[x] Compiler API can be used via the `capnp-es/compiler` subpath export programmatically.
34
-
-[x] Use native `TextEncoder` and `TextDecoder` for utf8 encoding
35
-
-[x] Enums are typed plain JS objects (this way `.ts` files work with strip-only ts loaders without enum support.)
36
-
-[x] Compiler CLI can directly accept path to `.capnp` files and internally use `capnpc`
37
-
-[ ] (WIP) Use reflection (getter setters) to access structs.
38
-
-[ ] (TODO) Investigate performannce. Seems some language features (specially on older Node.js) make full traverse slow.
This project is a rework<sup>1</sup> of [jdiaz5513/capnp-ts](https://github.com/jdiaz5513/capnp-ts/) by Julián Díaz and is under development.
53
+
54
+
-[x] Schema Compiler: working, may be missing features
55
+
-[x] Serialization: working, may be missing features
56
+
-[ ] RPC: not yet
57
+
58
+
**<sup>1</sup> Changes from `capnp-ts`:**
59
+
60
+
-[x] Internal refactors and simplifications as was playing around.
61
+
-[x] Compiler, runtime, and std lib published via a single and compact ESM-only package with subpath exports.
62
+
-[x] Compiler updated to use Typescript v5 API
63
+
-[x] Output files can be `.ts` (new), `.js` (ESM instead of CJS), and `.d.ts` and has no `.capnp` suffix.
64
+
-[x] Compiler API can be used via the `capnp-es/compiler` subpath export programmatically.
65
+
-[x] Use native `TextEncoder` and `TextDecoder` for utf8 encoding
66
+
-[x] Enums are typed plain JS objects (this way `.ts` files work with strip-only ts loaders without enum support.)
67
+
-[x] Compiler CLI can directly accept a path to `.capnp` files and internally use `capnpc`
68
+
-[ ][WIP] Use reflection (getter setters) to access structs.
69
+
-[ ][TODO] Investigate runtime performance. Some language features make full traverse slow. (especially on Node 20, Bun is fast and all good)
0 commit comments