Skip to main content

High-performance zero-copy tensor protocol

Project description

Gemini_Generated_Image_v39t46v39t46v39t

Tenso

High-Performance, Zero-Copy Tensor Protocol for Python.

Overview

Tenso is a specialized binary protocol designed for one thing: moving NumPy arrays between backends instantly.

It avoids the massive CPU overhead of standard formats (JSON, Pickle, MsgPack) by using a strict Little-Endian, 64-byte aligned memory layout. This allows for Zero-Copy deserialization, meaning the CPU doesn't have to move data—it just points to it.

The Zero-CPU Advantage

Tenso isn't just about speed; it's about resource efficiency.

  • JSON/Pickle: Parsing large arrays consumes significant CPU cycles (100% usage during load). In a high-throughput cluster, this steals resources from your actual model inference.

  • Tenso: Deserialization is effectively 0% CPU. The processor simply maps the existing memory address.

Benchmark

Scenario: Reading a 64MB Float32 Matrix (Typical LLM Layer) from memory.

Format Read Time Write Time Status
Tenso 0.006 ms 5.287 ms Fastest & AVX-512 Safe
Arrow 0.007 ms 7.368 ms Heavy Dependency
Pickle 2.670 ms 2.773 ms Unsafe (Security Risk)
Safetensors 2.489 ms 7.747 ms -
MsgPack 2.536 ms 10.830 ms -

Installation

pip install tenso

Usage

Network

import numpy as np
import tenso

# Create a tensor
data = np.random.rand(100, 100).astype(np.float32)

# Serialize to bytes
packet = tenso.dumps(data)

# Deserialize back
restored = tenso.loads(packet)

File I/O

# Load from disk (Standard)
with open("weights.tenso", "rb") as f:
    loaded_data = tenso.load(f)

# Load Large Models (Larger than RAM)
# Uses OS memory mapping to read data instantly without loading file into memory
with open("llama_70b_weights.tenso", "rb") as f:
    loaded_data = tenso.load(f, mmap_mode=True)

Protocol Specification

Tenso uses a Hybrid Fixed-Header format designed for SIMD safety.

  • Header (8 bytes): TNSO Magic, Version, Flags, Dtype, NDim.

  • Shape Block: Variable length (NDim * 4 bytes).

  • Padding: 0-63 bytes to ensure the Body starts at a 64-byte aligned address.

  • Body: Raw C-contiguous memory dump.

Tenso vs. The World

Feature Tenso Pickle Arrow Safetensors
Speed (Read) Instant Slow Instant Fast
Safety Secure Unsafe (RCE Risk) Secure Secure
Alignment 64-byte None 64-byte None
Dependencies NumPy Only Python PyArrow (Huge) Rust/Bindings
Best For Network/IPC Python Objects Dataframes Disk Storage

Why is Tenso 1500x faster than Pickle? Standard formats must copy data from the network buffer into a new NumPy array. Tenso uses Memory Mapping: it tells NumPy to point directly at the existing buffer. No copying, no CPU cycles.

Development

# Clone the repository
git clone https://github.com/yourusername/tenso.git
cd tenso

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run benchmarks
python benchmark.py

Advanced Usage

Strict Mode: Prevent accidental memory copies during serialization. Raises an error if data is not already C-Contiguous.

try:
    # Will raise ValueError if array is Fortran-contiguous or non-contiguous
    packet = tenso.dumps(data, strict=True) 
except ValueError:
    print("Array must be C-Contiguous!")

Requirements

  • Python >= 3.10
  • NumPy

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

tenso-0.4.7.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tenso-0.4.7-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file tenso-0.4.7.tar.gz.

File metadata

  • Download URL: tenso-0.4.7.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tenso-0.4.7.tar.gz
Algorithm Hash digest
SHA256 468c0be4f80d3b7f9abae95f89c9de1f6f7ccef510ce0e02778e78a1ff19b815
MD5 911ae3928d1c2559f9cfc5956150674f
BLAKE2b-256 937c414ef3143abebe01554befa34cae81b3bca589d04d91d848c576729e6eed

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenso-0.4.7.tar.gz:

Publisher: release.yml on Khushiyant/tenso

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tenso-0.4.7-py3-none-any.whl.

File metadata

  • Download URL: tenso-0.4.7-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tenso-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4b2f25be6b14be65fe56184249e7538fa2e61ebdc9de3db0dc078c9639a6665e
MD5 45acc45589d6dfa80109baefa38b7a64
BLAKE2b-256 8977534003e9e09d5c92f1eda137761389cb9f3536ec08d502a5b2b0f849f367

See more details on using hashes here.

Provenance

The following attestation bundles were made for tenso-0.4.7-py3-none-any.whl:

Publisher: release.yml on Khushiyant/tenso

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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