cytoolz
Cython implementation of Toolz: High performance functional utilities
Decision gist · record as of 2026-08-14
Yes, if you are already using toolz and need better performance, or if you are building a data pipeline where functional utilities are central and speed matters. The compiled wheels are widely available, install friction is manageable, and there are no known vulnerabilities. The aging maintenance status (299 days since last release) is not a blocker for a stable, mature library, but monitor the repository for security updates. Not necessary if you are using toolz casually or if raw performance is not a concern.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; C compiler needed if building from source (pre-built wheels available for most platforms).
- Medium install friction due to compiled Cython wheels, but pre-built binaries are available for common platforms (Python 3.9–3.14, multiple architectures).
- Last release was 299 days ago; repository is active and not archived, though maintenance status is aging.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause (permissive) allows commercial and private use with minimal restrictions; attribution and license notice required in distributions.
last release 2025-10-19 (299 days) · last repo commit 2025-12-01 · 1,111 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 9,126,805 downloads/mo, #1,560 on PyPI
Alternatives
Verify before relying
pip install cytoolz
from cytoolz import partition, compose, curry
@curry
def add(x, y):
return x + y
add_five = add(5)
result = add_five(3)- Thread-safety guarantees for free-threaded Python 3.13+ (described as experimental and untested in the description).
- Specific performance benchmarks for the claimed 2–5x speedup across different use cases and data sizes.
What it is and what it does
Cytoolz is a Cython-compiled version of the toolz functional programming library. It provides the same API as toolz—a collection of utilities for working with iterables, functions, and dictionaries in a functional style—but trades compilation complexity for speed. The library is designed to work seamlessly with Python's built-in itertools and functools, and emphasizes low memory usage by returning iterators whenever possible, making it suitable for processing large or infinite data streams.
The main reason to use cytoolz over toolz is performance: typical speedups range from 2–5x for common operations. Since toolz can process very large datasets, this acceleration can be significant in data-heavy workflows. Cytoolz also exposes a C API for projects written in Cython. The package supports Python 3.9 through 3.14 and has experimental support for Python's free-threading mode (3.13+), though thread-safety has not yet been thoroughly tested.
Use it for
- Accelerate functional data transformations (map, filter, reduce, partition) on large iterables without loading entire datasets into memory.
- Build composable, curried functions for data pipelines where performance matters and you want to avoid intermediate list materialization.
- Process streaming or infinite data sequences using lazy evaluation and iterator-based utilities from a single, familiar API.
- Integrate high-performance functional utilities into Cython projects via cytoolz's exposed C API.
- Replace toolz in performance-critical numerical or data-processing code where the speedup justifies the compiled dependency.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are already using toolz and need better performance, or if you are building a data pipeline where functional utilities are central and speed matters.
The compiled wheels are widely available, install friction is manageable, and there are no known vulnerabilities. The aging maintenance status (299 days since last release) is not a blocker for a stable, mature library, but monitor the repository for security updates. Not necessary if you are using toolz casually or if raw performance is not a concern.
Install
cytoolz on PyPI
Before you install
Medium install friction due to compiled Cython wheels, but pre-built binaries are available for common platforms (Python 3.9–3.14, multiple architectures). Last release was 299 days ago; repository is active and not archived, though maintenance status is aging.
Requires Python 3.9 or later; C compiler needed if building from source (pre-built wheels available for most platforms).
License in practice
BSD-3-Clause (permissive) allows commercial and private use with minimal restrictions; attribution and license notice required in distributions.
Quickstart
pip install cytoolz
from cytoolz import partition, compose, curry
@curry
def add(x, y):
return x + y
add_five = add(5)
result = add_five(3)
Verify before relying
- Thread-safety guarantees for free-threaded Python 3.13+ (described as experimental and untested in the description).
- Specific performance benchmarks for the claimed 2–5x speedup across different use cases and data sizes.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagetoolz |
| Maintenance | Aging 299 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 9,126,805 / month, #1,560 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: CythonProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Free Threading :: 1 - UnstableProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Information AnalysisTopic :: Software DevelopmentTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities |
Evidence: cytoolz-1.1.0-cp310-cp310-macosx_10_9_universal2.whl; cytoolz-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl; cytoolz-1.1.0-cp310-cp310-macosx_11_0_arm64.whl; cytoolz-1.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; cytoolz-1.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; cytoolz-1.1.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; cytoolz-1.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl; cytoolz-1.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl; cytoolz-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; cytoolz-1.1.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_armv7l.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_i686.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_riscv64.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_s390x.whl; cytoolz-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl; cytoolz-1.1.0-cp310-cp310-win32.whl; cytoolz-1.1.0-cp310-cp310-win_amd64.whl; cytoolz-1.1.0-cp310-cp310-win_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “high performance itertools”
- cytoolzCython-accelerated implementation of the toolz functional utilities…
- jaraco.itertoolsProvides additional iterator utilities and helper functions that…
- more-itertoolsProvides additional iterator utilities and recipes that extend…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also toolz · more-itertools · jaraco.itertools · lmz · flupy · asyncstdlib-fw · jaraco.functools · funcy · asyncstdlib