This is a data serialization library. It’s a lot like JSON but it uses a new syntax called “typed netstrings” that Zed has proposed for use in the Mongrel2 webserver. It’s designed to be simpler and easier to implement than JSON, with a happy consequence of also being faster in many cases.
An ordinary netstring is a blob of data prefixed with its length and postfixed with a sanity-checking comma. The string “hello world” encodes like this:
11:hello world,
Typed netstrings add other datatypes by replacing the comma with a type tag. Here’s the integer 12345 encoded as a tnetstring:
5:12345#
And here’s the list [12345,True,0] which mixes integers and bools:
19:5:12345#4:true!1:0#]
Simple enough? This module gives you the following functions:
- dump:
dump an object as a tnetstring to a file
- dumps:
dump an object as a tnetstring to a string
- load:
load a tnetstring-encoded object from a file
- loads:
load a tnetstring-encoded object from a string
- pop:
pop a tnetstring-encoded object from the front of a string
Note that since parsing a tnetstring requires reading all the data into memory at once, there’s no efficiency gain from using the file-based versions of these functions. They’re only here so you can use load() to read precisely one item from a file or socket without consuming any extra data.
The tnetstrings specification explicitly states that strings are binary blobs and forbids the use of unicode at the protocol level. As a convenience to python programmers, this library lets you specify an application-level encoding to translate python’s unicode strings to and from binary blobs:
>>> print repr(tnetstring.loads("2:\xce\xb1,"))
'\xce\xb1'
>>>
>>> print repr(tnetstring.loads("2:\xce\xb1,", "utf8"))
u'\u03b1'
Release files for tnetstring 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tnetstring-0.2.1.tar.gz | 17.0 kB | Details |
Release files / tnetstring-0.2.1.tar.gz
| Download URL | tnetstring-0.2.1.tar.gz |
|---|---|
| Size | 17.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55715a5d758214034db179005def47ed842da36c4c48e9e7ae59bcaffed7ca9b
|
|
BLAKE2b-256 checksum How to use checksums |
75194b82ac8ff96d99e41f0e7b5544e7128c9c0c661c2f46c1d987f59c10bb19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |