81d5571398
Change-Id: I0afda1c3705b8789cf6a0c57f7b74d005deb4ff5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2433 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
18 lines
834 B
Markdown
18 lines
834 B
Markdown
# Netstring
|
|
|
|
Netstrings are a djb invention. They are intended as a serialization format. Instead of inline control characters like `\n` or `\0` to signal the end of a string, they use a run-length encoding given as the number of bytes, encoded in ASCII, at the beginning of the string.
|
|
|
|
```
|
|
hello -> 5:hello,
|
|
foo! -> 4:foo!,
|
|
こんにちは -> 15:こんにちは,
|
|
```
|
|
|
|
They can be used to encode e.g. lists by simply concatenating and reading them in one-by-one.
|
|
|
|
If you need a more complex encoding, you could start encoding e.g. tuples as netstrings-in-netstrings, or you could use [`netencode`](../netencode/README.md) instead, which is what-if-json-but-netstrings, and takes the idea of netstrings to their logical conclusion.
|
|
|
|
Resources:
|
|
|
|
Spec: http://cr.yp.to/proto/netstrings.txt
|
|
Wiki: https://en.wikipedia.org/wiki/Netstring
|