Skip to main content

YAJBE is a compact binary data format built to be a drop-in replacement for JSON (JavaScript Object Notation).

Project description

YAJBE for Python

YAJBE is a compact binary data format built to be a drop-in replacement for JSON (JavaScript Object Notation).

Motivation for a new format

We have a lot of services exchanging or storing data using JSON, and most of them don't want to switch to a data format that requires a schema.

We wanted to remove the overhead of the JSON format (especially field names), but keeping the same data model flexibility (numbers, strings, arrays, maps/objects, and a few values such as false, true, and null).

See more at https://github.com/matteobertozzi/yajbe-data-format

Install the package

You can find the package at https://pypi.org/project/yajbe.
Python >=3.10 is required. To install or upgrade you can use:

$ pip install --upgrade yajbe

Usage

import yajbe

# encode and decode from bytes
enc = yajbe.encode_as_bytes({'a': 10, 'b': ['hello', 10]})
dec = yajbe.decode_bytes(enc)
print(dec)

# encode directly to a stream
with open('test.yajbe', 'wb') as fd:
  yajbe.encode_to_stream(fd, {'a': 10, 'b': ['hello', 10]})

# decode directly from a stream
with open('test.yajbe', 'rb') as fd:
  print(yajbe.decode_stream(fd)) # {'a': 10, 'b': ['hello', 10]}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yajbe-0.0.2.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

yajbe-0.0.2-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file yajbe-0.0.2.tar.gz.

File metadata

  • Download URL: yajbe-0.0.2.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for yajbe-0.0.2.tar.gz
Algorithm Hash digest
SHA256 0e317e29030f08a2bbc3e83dd8f7cd950c641c56cce8e7b4c91264beef195d95
MD5 2c3165c3d8dd484d94df8ae8bc0cf43d
BLAKE2b-256 e1d7bd622281618b72be0004ec2bad8ae9d9eb6a1e64bf2f4bbf05fd535ab8dd

See more details on using hashes here.

File details

Details for the file yajbe-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: yajbe-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for yajbe-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 15197248de10bfd12b9fcc07bbaf10cd4b63e6b49b657e3b100f7390111c24f2
MD5 e56750ddcd60e9f12ee523759b384069
BLAKE2b-256 692f096d7dbca01999f2d9ab21efa0a588b031bebcda8307917abc38ed348867

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page