fionn-py
Python bindings for fionn - Fast JSON library with SIMD acceleration.
Features
- Drop-in orjson replacement:
import fionnworks likeimport orjson - ISONL streaming: 11.9x faster than fastest JSON parser (sonic-rs)
- JSONL streaming: Schema-filtered parsing with batch processing
- Multi-format: YAML, TOML, CSV, ISON, TOON parsing
- Extended ops: Gron, Diff/Patch, CRDT, Tape API
Installation
# Using uv (recommended)
uv pip install fionn
# Using pip
pip install fionn
Quick Start
orjson-compatible API
import fionn
# Parse JSON
data = fionn.loads(b'{"name": "Alice", "age": 30}')
# Serialize JSON
output = fionn.dumps(data, option=fionn.OPT_INDENT_2)
ISONL Streaming (11.9x faster)
import fionn.ext as fx
# Read ISONL (schema-embedded, zero inference overhead)
for batch in fx.IsonlReader("data.isonl"):
for record in batch:
process(record)
# Convert JSONL to ISONL for 11.9x speedup on repeated reads
fx.jsonl_to_isonl("input.jsonl", "output.isonl", table="events", infer_schema=True)
Performance
| Operation | Baseline | fionn | Speedup |
|---|---|---|---|
| JSON loads | orjson | match | 1x |
| JSONL streaming | sonic-rs | match | 1x |
| ISONL streaming | sonic-rs | 11.9x faster | 11.9x |
Development
# Install dev dependencies
uv sync --dev
# Build
maturin develop
# Test
pytest
# Lint
ruff check .
# Type check
mypy .
License
MIT OR Apache-2.0
Release files for fionn 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fionn-0.1.0.tar.gz | 24.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| fionn-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | PyPy 3.11 | PyPy 3.11 7.3 | Linux glibc 2.17+ x86-64 | Details |
| fionn-0.1.0-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| fionn-0.1.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| fionn-0.1.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| fionn-0.1.0-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| fionn-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 28.9 MB
Release files / fionn-0.1.0.tar.gz
| Download URL | fionn-0.1.0.tar.gz |
|---|---|
| Size | 24.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f9f79b9bb6b29dafce09ef98c276a791cbe63b6cc198bb1fcd42eb310c2c37c
|
|
BLAKE2b-256 checksum How to use checksums |
63236bcae2acd70618454ac30a0cc15e60413f7b490e5c9da4fd6ad26cbd983b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / fionn-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fionn-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 813.4 kB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
4de25b5cd43f79cea4131e5c3614ad58f6c0a54c78ca65981aa430ab76e5c7e3
|
|
BLAKE2b-256 checksum How to use checksums |
cd9b0353bd339c05ff70d5e51320aaec2feac81167bab1a526f1790a26348625
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / fionn-0.1.0-cp39-abi3-win_amd64.whl
| Download URL | fionn-0.1.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 705.5 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
28ba50e76676eb81ad3b9667baed175bf71dba1ff32d45a00326a223af62f2b7
|
|
BLAKE2b-256 checksum How to use checksums |
e08ca01587c943ee36aa55ba77e548363d70d40b930cb88216ebacca12a2c15b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / fionn-0.1.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fionn-0.1.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 819.9 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5df22b2f7d933f426d3382315e58c6eb8dad882137236dcc8d5db8b1b261c50f
|
|
BLAKE2b-256 checksum How to use checksums |
3f13bdb83687d408a3f0160f1cc22a7d7dfa061b5a0300543c8fde3b1a9a51b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / fionn-0.1.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | fionn-0.1.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 755.9 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
9bc8b7c0ff149aefd4aacf4a4ffa2f964a0084c0f4284172d2bde84a8551c475
|
|
BLAKE2b-256 checksum How to use checksums |
3dbe58700f7b21229550e2f9f510478c514500a0adf0ec6270c17546fd58cd67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / fionn-0.1.0-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | fionn-0.1.0-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 732.1 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b8c10e5afd8f71fd554958c937913f1c238951c4ae1cc070a41a9b6963b40809
|
|
BLAKE2b-256 checksum How to use checksums |
70796fdc382b4d988f137048f02286d4761d080bc67fd80de822b484318deaaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / fionn-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | fionn-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 806.7 kB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
fc41d569ab88dc6666f8103f163a7ea38bcaa4fd18b3824e1a7a46e1f55bdc07
|
|
BLAKE2b-256 checksum How to use checksums |
e7173884bef5d1e34a10e7a5a743a093464fea6957a721f745049912b56a9e14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|