GlobalBuffer
Cross-platform, cross-process named shared-memory buffer for Python.
import global_buffer as gb
A writer publishes samples by name; any process on the same host attaches by name and reads — either the newest sample or every sample in order, by blocking call or background callback. Built for streams that mix high frequency (e.g. 200 Hz numeric arrays) and low frequency (e.g. 1 Hz structured status messages) without burning CPU on either end.
It fills the gap between multiprocessing.shared_memory (too low-level),
UltraDict (dated, pickle-based), and iceoryx2/eCAL (heavy native installs):
a pip-installable, pydantic-native, callback-driven buffer with a clean API and a
lock-free Cython hot path.
Status
v1.1.3. Core is stable and covered by 76 tests (including a cross-process
no-torn-reads stress test), verified on macOS / CPython 3.14. Linux, Windows and
aarch64 (Jetson) are supported and wheels are configured, with broad CI
verification on those platforms in progress. See CHANGELOG.md
for known limitations.
Features
- Two stream kinds, one API
- Array streams — fixed dtype + shape numpy data, written and read zero-copy.
- Message streams —
pydanticmodels usemsgspec(msgpack), while protobuf schemas use native protobuf serialization on the wire.
- Last-value or in-order reads —
latest()jumps to the newest sample;next()consumes every sample in order and reportsoverrunsif a reader falls behind. - Lock-free, tear-free — single-writer / multi-reader ring with a spare slot
(
capacity + 1) plus a per-slot seqlock implemented with C11 atomics. No torn reads even at high rate. - Near-0-CPU wakeups — readers block on an adaptive poll of the shared commit counter; idle readers cost roughly one atomic load every couple of milliseconds.
- Cross-platform — Linux, macOS, Windows; ships as compiled wheels.
Install
pip install global_buffer
Wheels are published for CPython 3.9–3.13 on manylinux x86_64 / aarch64, macOS (x86_64 + arm64) and Windows amd64. A source build needs a C11 compiler.
Quickstart
Array stream (200 Hz, zero-copy)
import global_buffer as gb
import numpy as np
# writer / owner
csi = gb.create(name="csi", schema=gb.ArraySpec(dtype="complex64", shape=(64, 4)),
capacity=8)
with csi.reserve() as slot: # slot is an ndarray view directly into shm
slot[:] = frame # fill in place — no copy
# or: csi.write(frame) # single-memcpy convenience form
# reader (any other process)
r = gb.attach("csi") # schema discovered from the segment
frame = r.latest() # newest committed sample
r.on_data(lambda sample, seq: process(sample), mode="latest") # bg thread
Message stream (1 Hz, pydantic)
import pydantic, global_buffer as gb
class Status(pydantic.BaseModel):
gain: float
cam_on: bool
status = gb.create(name="status", schema=Status, capacity=4, max_bytes=512)
status.write(Status(gain=1.2, cam_on=True))
rs = gb.attach("status", model=Status) # schema mismatch -> raises on attach
msg = rs.next(timeout=1.0) # -> validated Status instance
Protobuf message classes are also accepted as schemas. They use protobuf's native binary serializer without a dict conversion:
from my_proto_pb2 import Status
status = gb.create(name="status", schema=Status, capacity=4, max_bytes=512)
status.write(Status(gain=1.2, cam_on=True))
reader = gb.attach("status", model=Status)
msg = reader.next(timeout=1.0)
For a protobuf stream, attaching without model= returns serialized bytes;
pass the generated message class to decode directly into a protobuf object.
OO consumer
class CsiConsumer(gb.Consumer):
def callback(self): # framework sets self.data / self.seq
self.processed = heavy_process(self.data)
ob = CsiConsumer.attach("csi", mode="latest")
ob.start()
...
ob.stop()
Semantics
capacityis the number of logical slots; the core allocatescapacity + 1so the writer never overwrites the slot a reader could currently be reading.- A reader created with
attach()starts at the newest sample present at attach time. latest()returnsNoneon an empty buffer.next(timeout=...)raisesgb.Emptyon timeout; without a timeout it blocks.next()accumulatesreader.overrunswhen the writer laps the reader by more thancapacitysamples (the reader then jumps to the oldest still-available sample).reader.writer_alivereflects the writer heartbeat (automatic stamps default to every 100 ms; a writer silent for >2 s reads as not alive).
Lifecycle
buf.close() # detach this handle (segment stays alive)
buf.unlink() # owner removes the segment
gb.unlink(name) # remove a segment by name (e.g. clean up after a crash)
GlobalBuffer manages segment lifetime explicitly (it opts out of the
multiprocessing resource_tracker where supported, Python 3.13+), so a reader
exiting never unlinks the owner's segment.
Platform support
| OS | Segment | Notification |
|---|---|---|
| Linux | multiprocessing.shared_memory (POSIX shm) |
adaptive poll on commit counter |
| macOS | multiprocessing.shared_memory (POSIX shm) |
adaptive poll on commit counter |
| Windows | multiprocessing.shared_memory (mem-mapped) |
adaptive poll on commit counter |
Verification status. Behaviour is verified on macOS today; the Linux/Windows CI matrix and aarch64 wheels are configured and will be exercised before those platforms are declared production-verified.
Note on notifications. The current release uses adaptive polling of the shared commit counter for wakeups — fully portable, reliable on all three OSes, and near-0 CPU when idle (the poll interval backs off to ~2 ms). A true 0-CPU kernel-blocking backend (Linux
eventfd/ process-shared pthread condvar, Windows named semaphore) fits behind the same interface and is planned once it can be verified per-OS in CI. POSIX named semaphores were evaluated and dropped: they behave unreliably on macOS.
Build from source
python -m pip install -U pip setuptools wheel Cython numpy msgspec pydantic protobuf
python setup.py build_ext --inplace
PYTHONPATH=src python -c "import global_buffer as gb; print(gb.__version__)"
Performance and efficiency
The hot path keeps a persistent Cython binding to the shared-memory segment,
avoiding repeated Python buffer-export setup. Writes also publish the writer
heartbeat in the same bound operation. For high-rate array consumers,
next_into() reuses caller-owned numpy storage and next_batch_into() drains
multiple samples without allocating a bytes object per sample. The reader
continues to use adaptive polling, so idle CPU stays low without adding a
busy-spin phase.
Run the rate sweep on an otherwise idle machine:
PYTHONPATH=src python benchmarks/benchmark_hz.py \
--rates 10 30 60 120 200 500 1000 --duration 2
For a 32 KiB int8 payload, use 32,768 elements:
PYTHONPATH=src python benchmarks/benchmark_hz.py \
--dtype int8 --elements 32768 \
--rates 10 30 60 120 200 500 1000 --duration 2
The benchmark reports requested rate, achieved write/read rate, callback overruns, combined process CPU percentage, and CPU microseconds per written sample. It uses one writer and one callback reader in the same process; use it for relative comparisons on the same machine, not as a cross-machine score.
On the Windows CPython 3.14 development machine, a 64-float32 sample sweep
completed without overruns through 1000 Hz. The optimized path measured about
0.76 microseconds per write at the median of repeated 20,000-sample runs,
versus about 0.83 microseconds for the upstream revision; read cost stayed
near 1.2 microseconds per latest() call.
Representative 2-second sweep (capacity=256, one callback reader):
| Target | Write rate | Read rate | Overruns | Combined CPU |
|---|---|---|---|---|
| 10 Hz | 10.0 Hz | 10.0 Hz | 0 | 0.78% |
| 30 Hz | 30.0 Hz | 30.0 Hz | 0 | 1.56% |
| 60 Hz | 60.5 Hz | 60.0 Hz | 0 | 3.15% |
| 120 Hz | 120.0 Hz | 120.0 Hz | 0 | 2.34% |
| 200 Hz | 200.5 Hz | 200.0 Hz | 0 | 2.35% |
| 500 Hz | 499.8 Hz | 499.8 Hz | 0 | 2.34% |
| 1000 Hz | 1000.4 Hz | 999.9 Hz | 0 | 9.38% |
These numbers are machine- and scheduler-dependent; rerun the command above for production hardware and payload sizes.
32 KiB int8 sweep on the same machine:
| Target | Write rate | Read rate | Overruns | Combined CPU |
|---|---|---|---|---|
| 10 Hz | 10.0 Hz | 10.0 Hz | 0 | 1.56% |
| 30 Hz | 30.0 Hz | 30.0 Hz | 0 | 3.12% |
| 60 Hz | 60.5 Hz | 60.0 Hz | 0 | 0.79% |
| 120 Hz | 120.0 Hz | 120.0 Hz | 0 | 1.56% |
| 200 Hz | 200.5 Hz | 200.0 Hz | 0 | 4.70% |
| 500 Hz | 499.9 Hz | 499.9 Hz | 0 | 8.59% |
| 1000 Hz | 1000.3 Hz | 999.8 Hz | 0 | 14.07% |
At 1000 Hz this is 32.768 MB/s of payload in each direction; the benchmark still delivered 1,999 of 2,000 callbacks with zero ring overruns.
The allocation-free API comparison at 1000 Hz for 5 seconds was:
| Reader API | Delivered | Overruns | Combined CPU |
|---|---|---|---|
next() |
4,999 / 5,000 | 0 | 12.50% |
next_into() |
5,000 / 5,000 | 0 | 12.81% |
next_batch_into() |
5,000 / 5,000 | 0 | 13.75% |
latest() |
4,381 / 5,000 | 0 | 13.13% |
For a paced stream with one sample available per wakeup, the 32 KiB memcpy
dominates, so next_into() mainly removes per-sample allocation and makes
latency/CPU more predictable. Batch reads help more when the writer publishes
bursts; latest() intentionally skips intermediate frames.
Run the tests
PYTHONPATH=src python -m pytest tests -v # full suite
PYTHONPATH=src python -m pytest tests -m "not crossproc_slow" # skip the long stress test
Or in Docker:
docker build -t globalbuffer . && docker run --rm globalbuffer
docker compose up # two-process writer/reader demo
Jetson / aarch64
Wheels are built for manylinux aarch64. Atomics and process spawn behaviour can
differ from x86; run the suite on the target device once as a smoke test.
Design
Full documentation is in docs/; design rationale and the
on-disk segment layout are in docs/design.md.
License
MIT © 2026 Izzet Sezer
Metadata
Release files for global-buffer 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| global_buffer-1.1.3.tar.gz | 144.9 kB | Details |
Built distributions (wheels)
Total release size: 7.6 MB
Release files / global_buffer-1.1.3.tar.gz
| Download URL | global_buffer-1.1.3.tar.gz |
|---|---|
| Size | 144.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b648efa21658e26d3da650034fd35980f2219fd11ebbfa453be23c499663145
|
|
BLAKE2b-256 checksum How to use checksums |
16bdb1a4a1cc45fa6501470433f7e94c5b3283bb582dd4188681b029aa989618
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp313-cp313-win_amd64.whl
| Download URL | global_buffer-1.1.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 184.6 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9d414fe16ecb4092a50d16104e6e07bab4e891cf92a8e1e5ef8a9c8e5b103604
|
|
BLAKE2b-256 checksum How to use checksums |
759afe18f3c642253f5d129783cec637c28dbcdc46aacf85729d1beef1465cb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | global_buffer-1.1.3-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 461.1 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
d9d0fcae4c55a792d93c7cd41926273dc735a185dbb0121e14704fd90add093e
|
|
BLAKE2b-256 checksum How to use checksums |
3ed72c251d3c4c0aa39b37b57a554bf8f561576123b87bba24da378cbb8b7868
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | global_buffer-1.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 457.2 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
255e36c42c99007fc7610cb5d2207e04ca7ede22c502df23c039594e389dea4d
|
|
BLAKE2b-256 checksum How to use checksums |
3a9b2c933066bbc234557c74fb5a0731dfb43bb89dfd6042fd99da5f9dda5489
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | global_buffer-1.1.3-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 191.2 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
33d30ba051e3860f1dc56c0674b5daf7bd4f9925559bf6b612f4bb878b9a2e07
|
|
BLAKE2b-256 checksum How to use checksums |
d103a58154fdf9fddc3deb479e91b2afd12dd8843133528fb165ebfb1845f873
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | global_buffer-1.1.3-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 193.6 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae39d1b8418c55a12fcc00aaeae559b1e1e975838446392d87b87d1310a7fd5d
|
|
BLAKE2b-256 checksum How to use checksums |
c06dcb10dc7563210ea3d820ae68f59995729f831751a8a01ddaa6398bd9e5a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp312-cp312-win_amd64.whl
| Download URL | global_buffer-1.1.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 185.5 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d4ac9fff59e5d6dcc0028a76375a51790b71749351a25a574e8896e03d46639a
|
|
BLAKE2b-256 checksum How to use checksums |
59c4d4dd1e329023ee244459eafc5aa137bafbe0d8805efce6a888b57ecb814e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | global_buffer-1.1.3-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 465.9 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
cf921a09fb3f0dcf08dfcadd40327a1963e77cb0e1fd0ccc18879f1dcb66d044
|
|
BLAKE2b-256 checksum How to use checksums |
028529a09f2940f3c2d9212d112264a42fbfbe7d96a3eac00d16f297461ad0c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | global_buffer-1.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 460.2 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
06efb46c409cf163da2d4e54fff14626ee6f24ca91a0fc8b21a24bce7e95f7f2
|
|
BLAKE2b-256 checksum How to use checksums |
018590fbf71271d6200593a70f9485c1e6700183570051dc54888065bfa39698
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | global_buffer-1.1.3-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 191.9 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a710ba4dad5bbd794ec9ada1e571cb406e6db21808673dfac0fe441fc3f06107
|
|
BLAKE2b-256 checksum How to use checksums |
1e3eea880709c1e6d70ac9f64769ad527e2ebbf32660373d72726ecea66f4078
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | global_buffer-1.1.3-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 194.3 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
2e157af0d644953425b211bf8a6fbe027d436ce3aba77ce555ab4d0fae7fef62
|
|
BLAKE2b-256 checksum How to use checksums |
75972f07e80d5d44a52218d688303e056aa04aed5aee589ab9f53e05e5945117
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp311-cp311-win_amd64.whl
| Download URL | global_buffer-1.1.3-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 183.9 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1518490ebfdbb61c36bd0285bae825df35347651698de7d8012a847acb7d9a0a
|
|
BLAKE2b-256 checksum How to use checksums |
b63df976e21109255f240ae26c41f91661553f0c04f450eeb95800b6223af847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | global_buffer-1.1.3-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 476.1 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
9425623f7052609deb4ca063fbef5c9303cc5df5e9fc955f72b52d146f95cc1c
|
|
BLAKE2b-256 checksum How to use checksums |
742c913b2f7b13dda8016ac451214c4a28c18cc07175c9cf8e25aa324bb9807a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | global_buffer-1.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 473.1 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
6dbe28ab30dca51d4315648aee067a6d912bcc3b1c291c2438dab602ac7744f4
|
|
BLAKE2b-256 checksum How to use checksums |
62f92d001876f8fe90356944a622d31aa6bbf53da03e8496a77704ca50fc953d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | global_buffer-1.1.3-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 191.9 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
50655a72fdae6816c31ef3f48aef544957168ba26e72cc547fe16d37353762b7
|
|
BLAKE2b-256 checksum How to use checksums |
766b08de7cdeba51cf0ec972f746bb5aebff13f521f603e4d7794dc56c4ae4c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | global_buffer-1.1.3-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 193.7 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
1929c026a7a36591ff86c51e10ee01205bffd9d7589ca014660448dc38c744f4
|
|
BLAKE2b-256 checksum How to use checksums |
4d4b86c31b86947382dcb2322ea920d7000174db39b19110bf887d66ffe4dec9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp310-cp310-win_amd64.whl
| Download URL | global_buffer-1.1.3-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 184.1 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2b8663098db58fbf351746f236519d835ca6a2e50da15dd71a1c861451e833cb
|
|
BLAKE2b-256 checksum How to use checksums |
64cede80c43f486061061ba900d7360e969f0d6140e811be808d37ad26688272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | global_buffer-1.1.3-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 464.8 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
ea20764151f3121a79fda1f3b714ebeb57fe33acb1734ed6eb16a3be1ae76188
|
|
BLAKE2b-256 checksum How to use checksums |
b146ad201876101e962da577b2b72fb028f48e2c2598b3e66c110b33dc963f71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | global_buffer-1.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 459.7 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b05be609e897b97c426d48006c16ed531e5be675173f0a1fb24ec035c8038b38
|
|
BLAKE2b-256 checksum How to use checksums |
333945e662cf823c260c849cd9b308f233b6b70729cfdb34b558bc1c313fadd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | global_buffer-1.1.3-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 192.5 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0cd0c8151a5739119fd1a49fedd505f51be7763b7e7770186ab72aa3da778af5
|
|
BLAKE2b-256 checksum How to use checksums |
5fb79344c86e40fd9ca31068131361ca8a3ae0ac4d153f6e27551a1ef0d0f6f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | global_buffer-1.1.3-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 194.0 kB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
48623e9b37259d2d9bb449171c1af60dc08f84ec726500866f9678941c99ad5a
|
|
BLAKE2b-256 checksum How to use checksums |
1f93574f89970866d0b843b8d3bcff9f4b145054daca0ed6763573831fed660c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp39-cp39-win_amd64.whl
| Download URL | global_buffer-1.1.3-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 184.5 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
dacc66b5fb7be6d31421a00d1c02c26052761a61d0c0c0e2b6ce056ab8d261ad
|
|
BLAKE2b-256 checksum How to use checksums |
96fe0842976680270849bc7a4e9bc5cd3ab59cf473e9a9fefe04e8129ca6404c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | global_buffer-1.1.3-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 463.5 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
328ec1759247aadf67b67e3aae33864892cdfcbf46193eac6e6001b9231ad496
|
|
BLAKE2b-256 checksum How to use checksums |
f8dd9b472f87af8f1d97127bd35cf969045a2153a84528cc24a8ecbbe8f6ce9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | global_buffer-1.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 458.1 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
58bcfcf1804051b91040a4b599fe73a6a6960a0bdc5171371aeb4242cfb465ea
|
|
BLAKE2b-256 checksum How to use checksums |
87fd48bbd6499a4d1b46ec313626845247c1dea1800d59c9f1d59565d68e846f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | global_buffer-1.1.3-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 192.9 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f397b3828d00615ecd3601f4ea82736ef4ebec0bd5bbf0911387c30ab8b6b9b6
|
|
BLAKE2b-256 checksum How to use checksums |
a713c213b86cd35bf4ada713645c0c1638ed180129049aae776d8251d43cc767
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / global_buffer-1.1.3-cp39-cp39-macosx_10_9_x86_64.whl
| Download URL | global_buffer-1.1.3-cp39-cp39-macosx_10_9_x86_64.whl |
|---|---|
| Size | 194.4 kB |
| Tags | CPython 3.9 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
3c4ecf5d9375584ccf46ec2fc63b6e51fc086c5729f01cd0d187c0e9a47e348d
|
|
BLAKE2b-256 checksum How to use checksums |
700025ec2cb19ba0034a1362ea64e00948637fd8af9d586686da5f01174106e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|