Skip to main content

PyCyBase

docs pypi-linux pypi-windows

Common C / Cython dual interfaces for Python HFT Projects.

Overview

Low-level allocator infrastructure shared across HFT projects:

  • Allocator Protocol — Pluggable memory allocation with heap, shared-memory (SHM), and raw malloc backends. Ref-counting, vigilant mode, thread-safety controls.
  • Heap Allocator — In-process allocator with free-list reuse and auto-growing pages.
  • SHM Allocator — POSIX shared-memory page allocator with fixed-address virtual region mapping for cross-process pointer stability.
  • ByteMap — Fast xxHash3-backed hash maps for byte-string keys (ByteMap, ByteMapEx, bound variants).
  • Intern String — FNV-1a-hashed string interning with SHM-backed cross-process pools. 1.7–2.2× speedup over Python str.

Quick Start

from cbase.allocator_protocol import AllocatorProtocol, AP_SHARED

with AP_SHARED:
    alloc = AllocatorProtocol(1024)
    alloc.buf[0] = b'x'
from cbase.intern_string import POOL

aapl = POOL.istr("AAPL")
assert aapl is POOL.istr("AAPL")  # Identity — string deduplication
from cbase.bytemap import ByteMap

bm = ByteMap()
bm[b"ticker"] = b"AAPL"
assert bm[b"ticker"] == b"AAPL"

Build & Install

PyCyBase is a Cython extension package — it cannot be used with pip install -e . (editable mode breaks Cython .pxd resolution for downstream projects).

POSIX (Linux / macOS)

# Build extensions in-place, then install
./build.sh -i

# Or equivalently:
make build && pip install -U . --no-build-isolation

# Or step by step:
python setup.py build_ext --inplace --verbose --force
pip install -U . --no-build-isolation

Build script reference:

Command Effect
./build.sh Clean + build in-place
./build.sh -i Clean + build + pip install .
./build.sh -r Clean + build + force-reinstall
./build.sh -c Clean only (no build)
./build.sh -a Deep clean (remove .c and .so files)
./build.sh -l List all compile-time macros
./build.sh -v /path/to/venv Use a specific venv
make or make build Clean + build
make install Build + pip install .
make reinstall Build + force-reinstall
make list-args List compile-time macros

Windows (NT)

# Local build
.\build.ps1 -VenvPath "C:\Users\...\venv_313"

# Remote build (from Linux host):
python nt_build.py

Compile-Time Macros

Override any macro at build time via environment variable:

DEBUG=1 ./build.sh         # Enable debug mode
DEBUG=1 make build          # Same via Makefile

List all available macros and defaults:

./build.sh -l               # Auto-generates macros.json via probe.py
make list-args
python probe.py             # Run the probe directly

Key macros (see macros.json for full list):

Macro Default Description
AP_ALLOC_VIGILANT 1 Enable bounds/canary checks
AP_ALLOC_WITH_LOCK 1 Thread-safety via pthread mutex
AP_ALLOC_WITH_SHM 0 Default to SHM allocator
AP_ALLOC_WITH_FREELIST 1 Free-list reuse
AP_HEAP_AUTOPAGE_CAPACITY 64 KiB Default heap page size
AP_HEAP_AUTOPAGE_CAPACITY_MAX 16 MiB Max heap page size
AP_HEAP_EXACT_BIN_COUNT 8192 Exact 8-byte-granular free-list bins
AP_HEAP_LARGE_BIN_COUNT 9 Pow2-class free-list bins for large blocks
AP_HEAP_PAGE_EXTEND_MAX 128 MiB Max auto-page extension on bin miss
AP_HEAP_EXACT_BIN_PROBE_COUNT 2 Larger exact bins to probe before extending
AP_SHM_AUTOPAGE_CAPACITY 64 KiB Default SHM page size
AP_SHM_ALLOCATOR_DEFAULT_REGION_SIZE 128 GiB SHM virtual region
AP_SHM_EXACT_BIN_COUNT 8192 Exact 8-byte-granular free-list bins
AP_SHM_PAGE_EXTEND_MAX 128 MiB Max auto-page extension on bin miss

Using get_include() in Downstream Projects

from setuptools import setup, Extension
from Cython.Build import cythonize
import cbase

ext = Extension(
    "my_module",
    sources=["my_module.pyx"],
    include_dirs=cbase.get_include(),
)
setup(ext_modules=cythonize([ext]))

Modules

Module Description
cbase.env EnvConfigContext — context manager for temporary config changes
cbase.allocator_protocol AllocatorProtocol, AllocatorConfigContext, AP sentinels
cbase.allocator_protocol.c_heap_allocator In-process heap allocator with free-list
cbase.allocator_protocol.c_shm_allocator POSIX shared-memory page allocator
cbase.bytemap.c_bytemap xxHash3-backed hash maps
cbase.intern_string.c_intern_string FNV-1a-hashed string interning
cbase.backports.pylong Python int ↔ 128-bit integer (uint128_t/int128_t) backport
cbase.backports.pydict PyDict_Pop backport for pre-3.13 Python

Documentation

pip install sphinx furo
cd docs
sphinx-build -M html . _build
# Or with the project venv:
~/Projects/venv_313/bin/sphinx-build -M html . _build

Open docs/_build/html/index.html.

Online: https://bolunhan.github.io/PyCyBase/

License

Proprietary.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pycybase-0.1.10-cp315-cp315t-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.15tWindows x86-64

pycybase-0.1.10-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pycybase-0.1.10-cp315-cp315-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.15Windows x86-64

pycybase-0.1.10-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pycybase-0.1.10-cp314-cp314t-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.14tWindows x86-64

pycybase-0.1.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pycybase-0.1.10-cp314-cp314-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.14Windows x86-64

pycybase-0.1.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pycybase-0.1.10-cp313-cp313-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.13Windows x86-64

pycybase-0.1.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pycybase-0.1.10-cp312-cp312-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.12Windows x86-64

pycybase-0.1.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pycybase-0.1.10-cp315-cp315t-win_amd64.whl.

File metadata

  • Download URL: pycybase-0.1.10-cp315-cp315t-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.15t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pycybase-0.1.10-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 dfe8ba3c583208b93e5a4cbae66ba7d9d5bd4ad2a1dece473f435bf3f7eaeb91
MD5 9475939a3b5ce32b59f73087304f568e
BLAKE2b-256 6103a048998790c65f736a855e63b10cf9dfc445e1d0500121cbcd826370ddb2

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycybase-0.1.10-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6d88a3729ddb038d5b3d04b9e2cfd279c23b17531f9c359b43c853b9ccc9bb7
MD5 5b43b25aaa66f0d82e8a0010635c12a5
BLAKE2b-256 a0292dd415f96f55ea334718b2536008e46593d02031d5a79373acd89f379acb

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp315-cp315-win_amd64.whl.

File metadata

  • Download URL: pycybase-0.1.10-cp315-cp315-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.15, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pycybase-0.1.10-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 67de33e988f5e817113c12fe3cc953bbeb525584411a16fd0d50dcc4021e6298
MD5 3c9b999d86bcb6b409a26c2fdce148ae
BLAKE2b-256 027d66571544038582d1abdc2aca11879a962d07f324aaf73a306a39ce72a8ee

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycybase-0.1.10-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2ec806b142b59932860caa94bc1debab9859419ad0833167c6b17f443d2e587
MD5 4e6303a68fcbdb5c7ff49cd031a46f4c
BLAKE2b-256 cc1e25bbc9920e536a8dab9902b57519b81fffd32158ef69096ab9587aa1789c

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: pycybase-0.1.10-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pycybase-0.1.10-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 3f7dbf83efa4ae11f3802f659e2481d2247a59802242b23c74774efe347c6ada
MD5 86da66173d183d525b614a9f29444617
BLAKE2b-256 f9ab0950c4c14160f853d2abf3bd95f574a8618ae43a977d0f95225395e284ee

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycybase-0.1.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd548a71e0946c5a1990f7b14c722e8214d247acc7b440b9edacf08dbaee35d9
MD5 cb6f8ce44cac099f614824d148430641
BLAKE2b-256 af029299907727c28315d916a0296e71c2099aac2062eb94c0457a397b10b5f5

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pycybase-0.1.10-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pycybase-0.1.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a2292792220081c8238a21b6659cc9df5dc36a230679c32c2b05aee2748ed940
MD5 292484e2e0e762a393c4848ee12c4c94
BLAKE2b-256 f700e491ca8fbac23cff456f24ec6036615239a314d9c1df9d138f539deb7c86

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycybase-0.1.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ab0ec1106addd05c00339ca050704897ab7e8da3553f00d5caebaafee8364ba
MD5 7b1c93933dcf59e4449ea7801f57d203
BLAKE2b-256 b8f983b8e6aefa6fa98f7ea5b304e47d593fe23afc5ae380c465dcebda4eba5b

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pycybase-0.1.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pycybase-0.1.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 da083fb4cd3f0126c41178e8acf2efd5ae21dcb0e908f6dbd9fe5153af0d84b0
MD5 c9c77259282ae6a37019e1973193bf27
BLAKE2b-256 c4551d21af9f36e5193361beff6ceba7489ebdb164945acf2aa9d2975bc0879c

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycybase-0.1.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e7fb3a396aa659797a60a81ca13aa3ea84932d531664bc76e4832151a1d1d73d
MD5 9e5589ca59f5a27c27d95188c934a166
BLAKE2b-256 388986683227318ed095292e69c9634f2001307128ef14be3946d2de31c09a57

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pycybase-0.1.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pycybase-0.1.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fb230a6ae36cb2edac58ccce7aa816484b8b5a680eb50f61c3a74bf077732846
MD5 88b354284927abd5744bcecf1875a780
BLAKE2b-256 76b139c02166231ebfe90a2efd691a36a9d59150003e173a5cfa707f27cc4817

See more details on using hashes here.

File details

Details for the file pycybase-0.1.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycybase-0.1.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1944d95c69b1cf3e8a8576f1a6ea2cdb6b21ab4fd116b1da9dc0d075ba9f8aec
MD5 c90bd9e6f9e37be78eb9a0fbabd2a374
BLAKE2b-256 752775cb4b6b632e3a863426714b5f5ee58c0851b5a4c6f98da3708e6bb42ed6

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.9

12 files

0.2.8

12 files

0.2.7

12 files

0.2.6

12 files

0.2.5

12 files

0.2.2

12 files

0.2.1

12 files

0.2.0

12 files

0.1.11.post1

12 files

0.1.11

12 files

This release

0.1.10 This release

12 files

0.1.9

8 files

0.1.8.post5

8 files

0.1.8.post3

4 files

0.1.8.post2

4 files

0.1.8.post1

4 files

0.1.8

4 files

0.1.7.post4

4 files

0.1.7.post2

3 files

0.1.4.post2

4 files

0.1.4.post1

4 files

0.1.3.post1

4 files

0.1.0

4 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page