Skip to main content

Talyn: Robust, Stable AsyncIO Event Loop for Python

License Python Compatibility Linux Compatibility Zig Compatibility PyPI Version

Talyn is a robust, exceptionally stable, and realistically fast asyncio event loop drop-in replacement for Python, powered by the asynchronous capabilities of Zig and io_uring.

Talyn prioritizes correctness, complete system safety, and high usability over artificial micro-benchmark superiority. It is fully compatible with CPython's standard single-threaded and free-threaded (GIL-disabled) runtimes.


🚀 Features

  • Realistic Speed: Designed to deliver solid and reliable I/O performance on Linux by leveraging io_uring's native kernel-side asynchronous completion queues.
  • Robust & Crash-Resistant: Meticulously hardened against circular reference memory leaks, stack alignment faults, signal interrupt deadlocks, and use-after-free bugs (332 bugs identified and resolved across audit passes with 0 open bugs).
  • Full Asyncio Compatibility: Passes 100% of standard Python asyncio, subprocess, transports, and connection-lifecycle test suites.
  • Offline AST Bug Hunter & Linter: Enforces strict invariant safety rules (preventing memory leaks, discarded syscalls, panics, and UAFs) via a built-in, sub-15ms Zig and Python AST static analyzer (zig build lint).
  • Open Knowledge Documentation: Built with comprehensive architectural mandates, lessons learned, and bug tracking under Google Open Knowledge Format (OKF v0.2).
  • Modern Packaging: Fully migrated to PEP 517/518 standard declarative pyproject.toml configuration.
  • GIL-Disabled Free-Threading Ready: Fully compatible with python3.13t and python3.14t without memory races.

📜 Requirements

  • Python: >= 3.13 (Tested and verified under CPython 3.13, 3.14, 3.13t (free-threaded), and 3.14t (free-threaded))
  • Linux Kernel: >= 7.0 (Verified on Linux Kernel 7.0.x)
  • Zig Compiler (for source builds): 0.16.0 or 0.17.0 (Fedora packages / upstream release)

🐳 io_uring in Containers and Sandboxes

Talyn needs working io_uring syscalls (io_uring_setup, io_uring_enter, io_uring_register). A recent kernel alone is not enough: many container runtimes and sandboxes filter these syscalls out. If Talyn fails at startup with a permission error during ring creation, check which case you're in:

  • EPERM from io_uring_setup — blocked by a seccomp filter or by the kernel.io_uring_disabled sysctl. Tell them apart with sysctl kernel.io_uring_disabled: 1 means the sysctl is the cause (io_uring then requires CAP_SYS_ADMIN), 0 means seccomp is the cause.
  • ENOSYS — the kernel has no io_uring at all, or the sandbox doesn't emulate it. Talyn cannot run there; no workaround.
Platform Status How to allow io_uring
Docker ≥ 25.0 Blocked by default (seccomp) --security-opt seccomp=unconfined, or a custom seccomp profile allowlisting the three syscalls
Podman Blocked by default (seccomp) --security-opt seccomp=unconfined, or a custom profile
containerd ≥ 2.0 Blocked by default (seccomp) --security-opt seccomp=unconfined (nerdctl), or per-pod securityContext
Kubernetes Follows the runtime's profile seccompProfile.type: Unconfined, or a Localhost custom profile
GitHub Actions container: jobs Blocked (Docker's default) container.options: --security-opt seccomp=unconfined
gVisor (runsc) Not supported (ENOSYS) —
AWS Lambda Not supported (ENOSYS; the syscall isn't in Lambda's kernel) —
Cloud Run gen1 Not supported (ENOSYS; gVisor) Redeploy with --execution-environment=gen2
Cloud Run gen2, Fly.io, Kata, Firecracker, LXC/LXD/Incus, GHA native jobs Works —

Background: a wave of io_uring kernel CVEs in 2023–2024 led Docker (v25.0) and containerd (v2.0) to drop the io_uring syscalls from their default seccomp allowlists. This is the runtime's security policy, not a Talyn defect — the same binary runs fine on any normal VM or bare-metal host with a recent kernel. See docs/development/containers-and-sandboxes.md for full details.


🔧 Installation & Testing

To compile and install Talyn locally on a native Linux machine, run:

pip install -e .

🍎 macOS Development & Testing via Podman (Apple Silicon)

Since Talyn is a Linux-only project leveraging io_uring, development and testing on macOS require running inside a Linux environment.

We provide a frictionless, automated setup using Podman and a Fedora 44 (AARCH64) container:

  1. Install Podman:

    brew install podman
    
  2. Initialize the Podman VM (only needed once):

    podman machine init
    
  3. Run the test suite (the script automatically starts the VM if it's stopped, builds the image, runs the tests with proper permissions, and stops the VM at the end if it started it):

    ./scripts/macos/run_tests.sh
    

You can pass any options supported by test_all.sh (e.g., --verbose or --python=3.13):

./scripts/macos/run_tests.sh --verbose --python=3.13

To force a rebuild of the Fedora testing image:

./scripts/macos/run_tests.sh --rebuild-image

📊 Benchmarking

We also provide a wrapper to run the benchmark suite inside the Fedora container using the optimized ReleaseFast target:

./scripts/macos/benchmark.sh --python=python3.13

You can target a specific benchmark using --bench (note that benchmark names with spaces must be quoted):

./scripts/macos/benchmark.sh --python=python3.13 --bench="task spawn"

The generated comparison plots will be automatically saved to benchmarks/output/.

📦 Building & Publishing Multi-Architecture Wheels

If you are developing on macOS (Apple Silicon) and need to build and publish wheels for both aarch64 and x86_64 architectures to PyPI, you can do so in a single command using Podman's emulation:

  1. Build all wheels: This script builds a native aarch64 container image and an emulated x86_64 container image, runs scripts/build.sh inside both, and collects all 8 wheels (4 Python versions × 2 architectures) in the ./dist/ directory:

    ./scripts/macos/build_all_wheels.sh
    
  2. Publish to PyPI: Upload the built distributions in ./dist/ using twine (pre-configured in your repository):

    ./scripts/publish.sh
    

🖥️ Linux (x86_64) Development: Build, Cross-Compile & Multi-Arch Testing

All of Talyn's development—including aarch64 and riscv64 wheels and full test-suite runs—can be done on an x86_64 (Intel) Linux PC, with no MacBook required:

  • Building: Zig is a native cross-compiler, so foreign-architecture wheels and the extension are produced at full host speed — no QEMU involved.
  • Testing: QEMU user-mode emulation (e.g. podman run --platform linux/arm64) cannot run Talyn, because io_uring_setup returns ENOSYS under user-mode emulation and Talyn requires io_uring with no fallback. Instead, we boot a full-system Fedora 44 VM per architecture, whose real guest kernel passes io_uring syscalls through to the host kernel.

📋 1. Fedora 44 required packages

Install Zig, all four Python interpreters with development headers, and the stdlib test suites:

sudo dnf install zig \
    python3.13 python3.13-devel python3.13-freethreading \
    python3.14 python3.14-devel python3.14-freethreading python3.14-freethreading-devel \
    python3.13-test python3.14-test python3.14-freethreading-test

Bootstrap pip and the test tooling for each interpreter:

for p in python3.13 python3.13t python3.14 python3.14t; do
    $p -m ensurepip --upgrade
    $p -m pip install --user pytest pytest-asyncio
done

For foreign-architecture VM testing (aarch64 / riscv64), additionally:

sudo dnf install qemu-system-aarch64 edk2-aarch64 qemu-system-riscv edk2-riscv64 \
    genisoimage openssh-clients

🏗️ 2. Build all wheels natively (x86_64 + aarch64 + riscv64)

./scripts/linux/build_all_wheels.sh

Uses Zig's native cross-compiler — no QEMU needed. Produces 12 wheels (4 Python variants × 3 architectures) in ./dist/, ready for ./scripts/publish.sh.

🧪 3. Run the test suite natively (x86_64)

./scripts/test_all.sh                  # Debug build
./scripts/test_all.sh --starburst      # ReleaseFast build

🖥️ 4. Test foreign-architecture wheels in VMs

Boots a real Fedora 44 VM per architecture (first run downloads the ~0.5 GB cloud image to ~/.cache/talyn-*-vm/) and runs the full pytest suite against each installed wheel:

./scripts/linux/run_tests.sh                     # aarch64 wheels
./scripts/linux/run_tests.sh --arch=riscv64      # riscv64 wheels
./scripts/linux/run_tests.sh --smoke             # quick import + event-loop smoke test only
./scripts/linux/run_tests.sh --shutdown          # stop the VM after the run

⚡ 5. Run the full test_all.sh suite in VMs (cross-compiled, fast)

test_all.sh normally compiles the extension inside the VM, which is slow under QEMU TCG. Instead, cross-compile the four extension variants natively on the host (the same build flags the wheels use) and run test_all.sh --no-build in the VM:

./scripts/linux/run_test_all.sh --arch=aarch64 --starburst
./scripts/linux/run_test_all.sh --arch=riscv64 --starburst

Under heavy emulation, a stdlib module may exceed its per-module timeout (e.g. test_subprocess on riscv64); raise it with TALYN_STDLIB_TIMEOUT=600 and the memory-safety repro timeout with TALYN_REPRO_TIMEOUT=900.

🛡️ 6. Run the native Offline AST Linter & Bug Hunter

Talyn includes a zero-dependency static analyzer hooked into std.zig.Ast and Python's ast module to prevent regressions and enforce architectural safety rules in under 15ms:

zig build lint

For the complete catalog of rules, see docs/development/ast-linter.md.

⏱️ Measured timings

scripts/test_all.sh --starburst (4 Python variants: pytest suite + stdlib asyncio suite):

Environment Total time
x86_64 (native) 8m28s
aarch64 VM, in-VM build 42m33s
riscv64 VM, in-VM build 44m56s
aarch64 VM, cross-built (run_test_all.sh) 17m47s
riscv64 VM, cross-built (run_test_all.sh) 24m48s

All configurations pass the pytest suite; under QEMU TCG the emulated runs are ~5× slower than native, and the cross-built runs cut the in-VM build phase (~2.4× speedup on aarch64). An occasional stdlib-asyncio module may time out under heavy emulation (see note above about TALYN_STDLIB_TIMEOUT).

⚡ Optimization & Target Compilation (For Developers & Power Users)

By default, the pre-built wheels generated by build.sh are compiled targeting a generic x86_64 CPU architecture baseline to ensure 100% universal compatibility across all 64-bit modern x86 Linux processors (e.g., matching standard PyPI manylinux wheel compatibility).

Based on our benchmarks and comprehensive validation—including 100% passing results in the standard asyncio test suite across four distinct Python versions—we publish the official binary packages (wheels) compiled in Starburst mode (Zig built with ReleaseFast) to deliver peak performance out of the box with proven stability.

If you are compiling from source, you can customize the compilation optimize mode and target CPU architecture to unleash maximum performance:

To compile Talyn so that it takes full advantage of your host's exact CPU instructions (such as AVX2, AVX-512, cache alignment, etc.):

# Omit TALYN_CPU so Zig defaults to native CPU optimization
TALYN_OPTIMIZE=ReleaseFast pip install .

2. Configure Compilation Modes

You can control Zig's optimize mode by setting the TALYN_OPTIMIZE environment variable (defaults to Debug for developer convenience):

  • TALYN_OPTIMIZE=Debug (Default): Compiles with heavy runtime assertions and debug symbols.
  • TALYN_OPTIMIZE=ReleaseSafe: Compiles with full optimizations but keeps safety checks (e.g. out-of-bounds, overflows).
  • TALYN_OPTIMIZE=ReleaseFast: Compiles with maximum optimizations (Starburst mode), disabling safety checks for peak execution speed.

3. Target a Specific CPU microarchitecture

You can force Zig to compile for a specific target CPU microarchitecture (like x86_64_v2 or x86_64_v3):

TALYN_OPTIMIZE=ReleaseFast TALYN_CPU=x86_64_v3 pip install .

4. Zig Version Compatibility

Talyn builds cleanly on both Zig 0.16.0 and Zig 0.17.0 from a single source tree.

Removed / Changed in 0.17 Portable Form Used in Talyn
@cImport (removed) b.addTranslateC via src/c_python.h module import
std.fmt.bufPrintZ (removed) std.fmt.bufPrintSentinel(..., 0)
std.meta.fields(T)[i].name std.meta.fieldNames(T)
.{v} ** N array repetition @splat(v) or std.mem.zeroes
std.meta.Int @Int builtin
Non-packed struct @bitCast (timespec) Explicit field assignment
std.zig.Ast.parse signature Portable parseAst wrapper branching on @hasDecl(Ast, "ParseOptions")
OptimizeMode.Debug tag case Comptime @hasField(OptimizeMode, "debug") selection in build.zig

All unit tests and full test suites pass under both toolchains:

# Zig 0.16.0
zig build test
./scripts/test_all.sh --starburst --verbose

# Zig 0.17.0
PATH=/path/to/zig-0.17.0:$PATH zig build test
PATH=/path/to/zig-0.17.0:$PATH ./scripts/test_all.sh --starburst --verbose

📦 Usage

Basic Usage

To run a coroutine directly with the Talyn event loop:

import talyn
import asyncio

async def main():
    print("Hello from Talyn!")
    await asyncio.sleep(1)
    print("Goodbye from Talyn!")

# Run using Talyn event loop
talyn.run(main())

Graceful Fallback & Hardening Check

For production configurations, you may want to support fallback options. If Talyn is not installed, or if the host Linux kernel does not meet Talyn's safety baseline (monitored by the HARD-01 Kernel Version Guard which requires kernel >= 6.0), the code will gracefully fall back to uvloop (if available), and finally to standard Python asyncio:

import asyncio

# 1. Try to initialize Talyn (performs HARD-01 kernel version check)
try:
    import talyn
    talyn.install()
except (ImportError, RuntimeError):
    # 2. Fallback to uvloop if Talyn is missing or kernel version is too old
    try:
        import uvloop
        uvloop.install()
    except (ImportError, AttributeError):
        # 3. Fallback to standard Python asyncio (do nothing)
        pass

async def main():
    print("Running with the best available event loop!")

asyncio.run(main())

💝 Historical Credits & Origin

Talyn is spun off from Leviathan, an event loop originally pioneered by Enrique Mora. Enrique Mora's creative spark and vision of merging Zig, io_uring, and asyncio laid the critical foundation and architecture of this project.

As Talyn evolved, the implementation underwent a complete systems-level refactoring to transition from a theoretical prototype to a production-grade, crash-resistant runtime:

  • Eliminated multi-crossing Zig/Python vectorcall overhead by implementing a fused scheduler step trampoline in pure Zig.
  • Redesigned completion handlers into flat, GC-safe ring buffers.
  • Fully audited and resolved all memory-leak reference cycles under concurrent connections.

To honor the project's roots and Enrique's early work:


📖 Project Story & Documentation

  • Master Documentation Index — Architectural mandates, bug tracker (332 resolved bugs), and lessons learned under OKF v0.2.
  • Development Journey — The full story: from discovery to challenges, the shift from "ultra-fast" to "realistic fast and stable", and how Talyn was built.
  • Why Talyn? — The personal story and meaning behind the new name.

📄 License

This project is licensed under the MIT License. See LICENSE.md for details.

Metadata

Release files for talyn 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for talyn 0.10.0
File
talyn-0.10.0-cp314-cp314t-manylinux_2_36_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.36+ x86-64 Details
talyn-0.10.0-cp314-cp314t-manylinux_2_36_riscv64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.36+ RISC-V 64 Details
talyn-0.10.0-cp314-cp314t-manylinux_2_36_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.36+ ARM64 Details
talyn-0.10.0-cp314-cp314-manylinux_2_36_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.36+ x86-64 Details
talyn-0.10.0-cp314-cp314-manylinux_2_36_riscv64.whl CPython 3.14 CPython 3.14 Linux glibc 2.36+ RISC-V 64 Details
talyn-0.10.0-cp314-cp314-manylinux_2_36_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.36+ ARM64 Details
talyn-0.10.0-cp313-cp313t-manylinux_2_36_x86_64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.36+ x86-64 Details
talyn-0.10.0-cp313-cp313t-manylinux_2_36_riscv64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.36+ RISC-V 64 Details
talyn-0.10.0-cp313-cp313t-manylinux_2_36_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.36+ ARM64 Details
talyn-0.10.0-cp313-cp313-manylinux_2_36_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.36+ x86-64 Details
talyn-0.10.0-cp313-cp313-manylinux_2_36_riscv64.whl CPython 3.13 CPython 3.13 Linux glibc 2.36+ RISC-V 64 Details
talyn-0.10.0-cp313-cp313-manylinux_2_36_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.36+ ARM64 Details

Total release size: 25.8 MB

Release files / talyn-0.10.0-cp314-cp314t-manylinux_2_36_x86_64.whl

Download URL talyn-0.10.0-cp314-cp314t-manylinux_2_36_x86_64.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.36+ x86-64
SHA-256 checksum
How to use checksums
5c57ec302cc36189c35ee721521c3079feb0a881c9acfc2952d670adbd71dce6
BLAKE2b-256 checksum
How to use checksums
98460aad69906208ff8616d3d1d1cd8251e7daf2ca81c71d7da926df0d7d32ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp314-cp314t-manylinux_2_36_riscv64.whl

Download URL talyn-0.10.0-cp314-cp314t-manylinux_2_36_riscv64.whl
Size 2.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.36+ RISC-V 64
SHA-256 checksum
How to use checksums
ab1db3a511608ffb87b46c34475428eebc33d444490412fa16606bcbfcc1f842
BLAKE2b-256 checksum
How to use checksums
cd150c0189161da8769175e2bbebf1332d27e5bcde5dc5fab60478090eb84f7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp314-cp314t-manylinux_2_36_aarch64.whl

Download URL talyn-0.10.0-cp314-cp314t-manylinux_2_36_aarch64.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.36+ ARM64
SHA-256 checksum
How to use checksums
c4f96f3dfa207e8580ac9a16e59939e277ed7a7578a065afd1c05c3b735394bc
BLAKE2b-256 checksum
How to use checksums
93f14ea0e68477d9c521d620ad014155499b4aae311a0a59a7553d7f759cbc2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp314-cp314-manylinux_2_36_x86_64.whl

Download URL talyn-0.10.0-cp314-cp314-manylinux_2_36_x86_64.whl
Size 1.9 MB
Tags CPython 3.14 Linux glibc 2.36+ x86-64
SHA-256 checksum
How to use checksums
ff7d516f23600e41e1a7e42df1544b2d5533a57c698f1f0982ab24a5c821c829
BLAKE2b-256 checksum
How to use checksums
fa33db585aa8767c267816f25b4f1eb4c86c5cb6eef766f32375d0abfa10b82d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp314-cp314-manylinux_2_36_riscv64.whl

Download URL talyn-0.10.0-cp314-cp314-manylinux_2_36_riscv64.whl
Size 2.5 MB
Tags CPython 3.14 Linux glibc 2.36+ RISC-V 64
SHA-256 checksum
How to use checksums
21e9dc5aac0a99508f2ff1cff93a748bc6ecd0fe34f998f9d69a0f8637954a2d
BLAKE2b-256 checksum
How to use checksums
f3b7b7aa8fe814be7dc95a96e2acf75d3043912e6d95a6ba1ab3476d65c1ec79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp314-cp314-manylinux_2_36_aarch64.whl

Download URL talyn-0.10.0-cp314-cp314-manylinux_2_36_aarch64.whl
Size 1.9 MB
Tags CPython 3.14 Linux glibc 2.36+ ARM64
SHA-256 checksum
How to use checksums
b799fbf1729d71fa218a69dea53836ebf8b5fdc701f8be6817a9c7e6f4e654dd
BLAKE2b-256 checksum
How to use checksums
267967f47728c919f1c7a672d7eac07746b63b9169c0aeb7dfe0c2c81bbd599e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp313-cp313t-manylinux_2_36_x86_64.whl

Download URL talyn-0.10.0-cp313-cp313t-manylinux_2_36_x86_64.whl
Size 2.0 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.36+ x86-64
SHA-256 checksum
How to use checksums
0e8b825871eaba2424fbb0bf98756b1030abacd1f231c19e74f315200e1fc9a6
BLAKE2b-256 checksum
How to use checksums
e3eed723d1beed43ec2c52a30462325dae942e54d5a4fe96e15fc6221aafe65b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp313-cp313t-manylinux_2_36_riscv64.whl

Download URL talyn-0.10.0-cp313-cp313t-manylinux_2_36_riscv64.whl
Size 2.6 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.36+ RISC-V 64
SHA-256 checksum
How to use checksums
9370d23b681deb91723603039aea5e943ecea4a968a0c2008c87da8ebe041c7a
BLAKE2b-256 checksum
How to use checksums
ad7a63f6792671df9311c01e7be9585171b48db3959fff9ccdbc2339c1f7dd83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp313-cp313t-manylinux_2_36_aarch64.whl

Download URL talyn-0.10.0-cp313-cp313t-manylinux_2_36_aarch64.whl
Size 2.0 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.36+ ARM64
SHA-256 checksum
How to use checksums
f530d2fc94c0f8b55323320723987affd284805c564df4a442219dcf6534e26d
BLAKE2b-256 checksum
How to use checksums
516bfb841c64e310c6241507a21da0a1da98c2a2c7878806952e76b16cff9a0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp313-cp313-manylinux_2_36_x86_64.whl

Download URL talyn-0.10.0-cp313-cp313-manylinux_2_36_x86_64.whl
Size 1.9 MB
Tags CPython 3.13 Linux glibc 2.36+ x86-64
SHA-256 checksum
How to use checksums
1d51a2686d006e10db942a367c78cdf38116496efc1ad9ff1d81f40875a4af65
BLAKE2b-256 checksum
How to use checksums
d9b6be63fa62eaa4f498c9a4b7fcd3b41ce8e384cb7a8a57c042408986e0fb69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp313-cp313-manylinux_2_36_riscv64.whl

Download URL talyn-0.10.0-cp313-cp313-manylinux_2_36_riscv64.whl
Size 2.5 MB
Tags CPython 3.13 Linux glibc 2.36+ RISC-V 64
SHA-256 checksum
How to use checksums
ae4b75f16fb0939112bdd743f1c1d3349990a33311fd3b3991236fe2973474df
BLAKE2b-256 checksum
How to use checksums
f7d602dacce2a81b3b446b348e5a7b849b6a9146893f559e1c4ab47e4743df85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / talyn-0.10.0-cp313-cp313-manylinux_2_36_aarch64.whl

Download URL talyn-0.10.0-cp313-cp313-manylinux_2_36_aarch64.whl
Size 1.9 MB
Tags CPython 3.13 Linux glibc 2.36+ ARM64
SHA-256 checksum
How to use checksums
d62d96cc9e146738c5658c9f5fe608eaa3cfd0169d092d80154402009e7a7cb4
BLAKE2b-256 checksum
How to use checksums
f9a7498a3abdc1fba4f4c14a8c9e14ca7351d29e324a1f08ce608fe2373bc0d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Security for talyn 0.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.10.0 This release

12 release files No provenance

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