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'
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| tnetstring-0.2.1.tar.gz | 17.0 kB | Without provenance | Details for tnetstring-0.2.1.tar.gz |
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 |
Security for tnetstring 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.