roundrobin
Collection of roundrobin utilities
Decision gist · record as of 2026-08-14
Yes, if you need round-robin selection with weighted or smooth distribution. The package is lightweight, dependency-free, and well-documented with clear examples. Maintenance is aging but stable; no known vulnerabilities. Not suitable for high-concurrency scenarios without external locking. Best fit for single-threaded or lock-protected use cases in load balancing, task distribution, or endpoint rotation.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python wheel with no runtime dependencies.
- Maintenance is aging (201 days since last release), but the repository remains active and the package has been stable since its first release in 2019.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source contexts.
last release 2026-01-25 (201 days) · last repo commit 2026-01-25 · 18 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 808,897 downloads/mo, #5,012 on PyPI
Alternatives
Verify before relying
pip install roundrobin
import roundrobin
get_rr = roundrobin.basic(["A", "B", "C"])
print(get_rr()) # returns next item in cycle
# Weighted variant
get_weighted = roundrobin.weighted([("A", 5), ("B", 1)])
print(get_weighted()) # respects weight ratios
# Smooth weighted with runtime control
rr = roundrobin.smooth_stateful([("A", 5), ("B", 1)])
rr.disable("A") # remove from rotation
rr.enable("A", effective_weight=0) # slow-start
print(rr()) # returns next item- Whether the package is actively maintained beyond bug fixes (last commit 2026-01-25, but no recent feature development signals).
- Performance characteristics under high-frequency selection (throughput, latency per call).
- Whether smooth_stateful's state management scales well with many items or frequent weight changes.
What it is and what it does
Roundrobin is a pure-Python library for selecting items in a cyclic, weighted, or smoothly-weighted distribution. It implements four selection strategies: basic round-robin cycles through items in order; weighted round-robin distributes picks proportionally to assigned weights (classic LVS algorithm); smooth weighted round-robin avoids clustering by spreading picks more evenly (Nginx-style); and smooth_stateful adds runtime controls to adjust weights, disable items, and enable slow-start ramping without restarting the schedule.
The library is designed for load-balancing scenarios where you need to distribute requests or work across multiple backends or workers. It has no external dependencies and works across Python 2.7 and Python 3.4 through 3.15. The stateful variant is useful for health checks and dynamic capacity changes, though it is not thread-safe and requires external synchronization if shared across threads.
Use it for
- Distribute HTTP requests across multiple backend servers with configurable weights and smooth distribution.
- Implement health-check-aware load balancing by disabling unhealthy backends and re-enabling them with slow-start.
- Balance work items across thread or process pools with weighted capacity allocation.
- Rotate through a list of API endpoints or data sources in a predictable, weighted manner.
- Implement slow-start ramp-up for newly added servers to avoid thundering-herd effects.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need round-robin selection with weighted or smooth distribution.
The package is lightweight, dependency-free, and well-documented with clear examples. Maintenance is aging but stable; no known vulnerabilities. Not suitable for high-concurrency scenarios without external locking. Best fit for single-threaded or lock-protected use cases in load balancing, task distribution, or endpoint rotation.
Install
roundrobin on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Maintenance is aging (201 days since last release), but the repository remains active and the package has been stable since its first release in 2019.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source contexts.
Quickstart
pip install roundrobin
import roundrobin
get_rr = roundrobin.basic(["A", "B", "C"])
print(get_rr()) # returns next item in cycle
# Weighted variant
get_weighted = roundrobin.weighted([("A", 5), ("B", 1)])
print(get_weighted()) # respects weight ratios
# Smooth weighted with runtime control
rr = roundrobin.smooth_stateful([("A", 5), ("B", 1)])
rr.disable("A") # remove from rotation
rr.enable("A", effective_weight=0) # slow-start
print(rr()) # returns next item
Verify before relying
- Whether the package is actively maintained beyond bug fixes (last commit 2026-01-25, but no recent feature development signals).
- Performance characteristics under high-frequency selection (throughput, latency per call).
- Whether smooth_stateful's state management scales well with many items or frequent weight changes.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 201 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 808,897 / month, #5,012 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming 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.15Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: PyPy |
Evidence: roundrobin-0.1.0-py3-none-any.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 › “round robin selector”
- roundrobinProvides four round-robin selection algorithms: basic (cyclic),…
- whisperWhisper is a fixed-size time-series database library that stores…
- roundersProvides drop-in replacements for Python's built-in `round` function…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also binpacking · vllm-router · queuelib · aws-cdk.aws-elasticloadbalancing · aws-cdk.aws-elasticloadbalancingv2 · Dijkstar · concurrencytest · aws-cdk.aws-globalaccelerator · rush · selectolax