lzjever/routilux
59.0
Adequate · 22 September 2026
68.6k
lines of production code
Python
primary language
6
measurements over time
What this system is
Routilux is an event-driven workflow orchestration framework that enables users to define, execute, and monitor complex data pipelines and agent workflows. It provides a Pythonic API for building concurrent, fault-tolerant flows, supported by a CLI for project management and an optional HTTP server for remote job control and real-time monitoring. The system includes built-in routines for data processing, text manipulation, and control flow, alongside tools for static analysis and automated testing.
How it got here
2025 — Routilux launch and architecture simplification
15 changes.
This period marks the official launch of the Routilux framework, featuring a simplified API, new core architecture, and a comprehensive suite of built-in routines for data processing, control flow, and text manipulation. The release also includes extensive test coverage, documentation, and example scripts to support developers adopting the new system.
2026 — Core engine and API server launch
15 changes.
This period focused on the initial release of the Routilux framework, introducing the core workflow engine, a FastAPI-based HTTP server, and a comprehensive CLI tool. The work established the foundational architecture for managing flows, jobs, and monitoring, supported by extensive test coverage and distribution via Homebrew.
Features
Add API authentication, structured error handling, and rate limiting middleware
The server now enforces API key authentication via the X-API-Key header, returning 401 or 403 errors when the key is missing or invalid. Global exception handlers have been added to provide standardized, structured JSON error responses for validation errors, HTTP exceptions, and internal server errors. Additionally, rate limiting is implemented using the slowapi library to restrict requests per IP address.
routilux/server/middleware · high confidence
Add AST analyzer tool for generating LLM-optimized API reference
A new Python tool has been added to the tools directory to analyze the Routilux codebase's Abstract Syntax Tree (AST). This utility parses core Python files (such as routine.py, flow.py, and slot.py) to extract class definitions, methods, and functions. It generates a compact markdown API reference document at docs/source/api\_reference\_compact.md, which is optimized for LLM consumption by including type annotations, docstrings, and method signatures.
tools · high confidence
Add Homebrew formula for Routilux CLI
Users can now install the Routilux event-driven workflow orchestration framework via Homebrew using 'brew install routilux'. The new formula includes the CLI tool and runs tests to verify the 'routilux' command is available and functional.
homebrew · medium confidence
Add analysis module for parsing routines and workflows
The \routilux/analysis\ package is introduced to provide tools for analyzing Python routines and workflows. It includes \RoutineAnalyzer\ and \WorkflowAnalyzer\ classes that use AST parsing and runtime inspection to extract structured information about routine classes, slots, events, and flow connections. The module also provides formatters to export analysis results into Markdown and D2 diagram formats, enabling users to generate documentation and visualizations of their routine-based architectures.
routilux/analysis · high confidence
Add control flow and data processing routines
Introduces new routines for flow control and data handling. The control\_flow package adds ConditionalRouter, Aggregator, Batcher, Debouncer, and Splitter to manage data routing, aggregation, batching, and splitting. The data\processing package adds DataTransformer, DataValidator, and Filter for transforming, validating, and filtering data. These components are exported from their respective package \\init\\_ files and documented in README files.
_routilux/builtin\_routines/control\flow · high confidence
Add optional monitoring, debugging, and metrics infrastructure
Added a new \routilux.monitoring\ package that provides optional monitoring, debugging, and metrics capabilities. This includes a \MonitoringRegistry\ to enable or disable all monitoring features globally, with zero overhead when disabled. The package introduces breakpoint management (\BreakpointManager\), debug session state management (\DebugSession\, \DebugSessionStore\), execution hooks (\MonitoringExecutionHooks\), a \MonitorCollector\ for collecting execution metrics and events, and a \JobEventManager\ for real-time event streaming via asyncio queues. Monitoring can be enabled automatically via the \ROUTILUX\_ENABLE\_MONITORING\ environment variable or by calling \MonitoringRegistry.enable()\. The \MonitorService\ provides a unified interface for retrieving monitoring data, including routine execution status and queue status.
routilux/monitoring, routilux/server/models, routilux/server/storage · high confidence
Add text processing routines for extraction and formatting
The routilux/builtin\_routines/text\_processing package now includes new routines for text manipulation, formatting, and extraction. Users can use TextClipper to safely truncate text while preserving tracebacks, TextRenderer to format objects into XML or markdown, and ResultExtractor to parse structured data from various formats like JSON, YAML, XML, and code blocks. The ResultExtractor supports multiple extraction strategies (auto, priority, all, first\_match) and allows custom extractors to be registered for extensibility.
_routilux/builtin\_routines/text\processing · high confidence
Added contributor and project documentation
The repository now includes a comprehensive CONTRIBUTING.md guide for developers, a comprehensive SETUP.md for development environment configuration, a versioning policy document (routilux and routilux-overseer), and a TODO tracking report. Additionally, a Chinese translation of the README (README.zh-CN.md) has been added to support international users.
(repo-wide) · high confidence
Added release notes generation and PyPI setup scripts
Added scripts to automate release processes: a Python script (generate\_release\_notes.py) that extracts changelog entries or git commits to generate release notes, a shell script (test\_release\_notes.sh) to locally test the release notes generation, and a shell script (setup\_pypi.sh) to configure PyPI credentials for publishing.
scripts · high confidence
Automatic registration of built-in routines
The \routilux/builtin\_routines\ package now provides a \register\_all\_builtins()\ function that automatically registers all built-in routines (including \Mapper\, \Filter\, \DataTransformer\, \ConditionalRouter\, \ResultExtractor\, and others) with a given factory. This simplifies setup by removing the need to manually register each routine individually.
_routilux/builtin\routines · high confidence
Introduce Routilux CLI with configuration, routine discovery, and server management
Users can now configure the Routilux CLI using TOML, YAML, or JSON files, with automatic discovery of \routilux.toml\ or \pyproject.toml\. The CLI adds a \--config\ option to specify a configuration file and supports merging CLI arguments with config values. A new routine discovery system scans directories for Python files and registers routines via the \@register\_routine\ and \@auto\_register\_routine\ decorators, enabling automatic routine registration. The \routilux server\ command starts an HTTP server with hot reload support for flow files, and the \routilux init\ command initializes a new project. The CLI also includes commands for managing jobs (submit/status/list) and listing/discovering routines.
routilux/cli · high confidence
Introduce new CLI commands for project initialization, workflow execution, and job management
The CLI now includes several new commands to streamline workflow management. Users can initialize new projects with \routilux init\, which sets up the directory structure and example files. The \routilux run\ command allows executing workflows from DSL files with support for parameters, output files, and timeouts. Additionally, \routilux job\ provides a group for managing workflow jobs, including submitting, checking status, and listing jobs, supporting both local and remote server modes. The \routilux list\ command enables listing routines and flows, with support for filtering by category, directory, or remote server. The \routilux validate\ command checks DSL syntax and flow structure, reporting errors and warnings. Shell completion is also available for bash, zsh, and fish.
routilux/cli/commands · high confidence
Introduce optional FastAPI-based HTTP server with security and audit features
The Routilux package now includes an optional HTTP server module (installable via \pip install routilux\[api\]\) that exposes REST and WebSocket endpoints for flow management, job control, and real-time monitoring. This new server component introduces structured error codes (e.g., UNAUTHORIZED, CONFLICT) for API responses, a configurable audit logging system that records security-relevant events like API calls and authentication failures, and strict security defaults where API key authentication and rate limiting are enabled by default. The server also implements safe expression evaluation for debugging and validates request payloads to prevent invalid data from reaching the core runtime.
routilux/server · high confidence
Introduction of the Routilux Core workflow engine
The Routilux core module has been introduced, providing a standalone workflow engine that depends only on serilux. This new core includes classes for managing execution context (JobContext, WorkerState), handling errors (ErrorHandler, ErrorStrategy), defining events and slots, and orchestrating flows. Users can now import and use the core components like Flow, Routine, and Runtime directly from routilux.core.
routilux/core · high confidence
New HTTP server API routes for flow, job, and runtime management
The server now exposes a comprehensive set of HTTP endpoints for managing flows, jobs, workers, and runtimes. Users can create, list, and inspect flows and their routines/connections via the \/flows\ and \/discovery/flows\ endpoints. Job submission and status tracking are available through \/jobs\ and \/execute\ (one-shot execution). Worker lifecycle management is provided via \/workers\ (create, list, delete). Runtime discovery and management are exposed through \/runtimes\. Additionally, the API supports breakpoint debugging (\/breakpoints\), object discovery (\/objects\), and real-time monitoring via WebSocket (\/ws\). Health checks are available at \/health/live\, \/health/ready\, and \/health/stats\. All endpoints require authentication via the \RequireAuth\ middleware.
routilux/server/routes · high confidence
New analysis, DSL, and testing utilities for workflow development
The \routilux/tools\ package now includes a comprehensive set of utilities for workflow development. The \analysis\ subpackage provides \RoutineAnalyzer\ and \WorkflowAnalyzer\ to extract structured information from Python files and Flow objects, with exporters to format results as Markdown or D2 diagrams. The \dsl\ module offers \load\_flow\_from\_spec\ and \parse\_spec\ for declarative workflow definitions via dictionaries, while the \factory\ module introduces an \ObjectFactory\ for creating Flow and Routine objects from registered prototypes. Additionally, the \testing\ module provides a \RoutineTester\ to facilitate unit testing of routines in isolation.
routilux/tools · high confidence
New example scripts demonstrating workflow patterns
Added several new example scripts in the \examples/\ directory, including \aggregator\_demo.py\, \async\_orchestration.py\, \builtin\_routines\_demo.py\, \complex\_routine\_demo.py\, \concurrent\_flow\_demo.py\, \data\_pipeline.py\, \error\_handling.py\, \job\_state\_management.py\, and \llm\_agent\_complex\_demo.py\. These files provide real-world usage examples for the Routilux library, covering concurrent execution, data pipelines, error handling, and complex routine configurations.
examples · high confidence
New playground demos for routine analysis, concurrent execution, and LLM agent cross-host recovery
The \playground\ directory now includes three new demonstration systems. The \analyzer\_demo\ provides a comprehensive tool for analyzing and exporting routine and workflow structures to JSON and D2 formats. The \concurrent\_execution\_demo\ showcases concurrent job execution with thread pool management and detailed monitoring. The \llm\_agent\_cross\_host\ demo illustrates an LLM agent workflow that supports active interruption, state persistence to cloud storage, and cross-host recovery. Each demo includes full documentation and runnable scripts.
playground · high confidence
Routilux framework launch with new core architecture and simplified API
Routilux is introduced as an event-driven workflow orchestration framework. This release establishes the new core architecture, exposing key classes such as Flow, Routine, Runtime, and ExecutionContext, along with a simplified API for quick pipeline creation via the \pipeline\ and \run\_sync\/\run\_async\ functions. The framework also includes built-in utility routines (e.g., TimeProvider, DataFlattener), a decorator-based routine creation system (\@routine\, \@routine\_class\), a metrics module for Prometheus-compatible monitoring, and an input validation framework. Users can now define workflows using the new core components or leverage the simplified API for linear pipelines.
routilux · high confidence
Removals
Removed legacy flowforge module and serialization infrastructure
The entire flowforge package has been removed, including the core workflow orchestration classes (Flow, Routine2, Slot, Event, Connection, JobState, ExecutionTracker, ErrorHandler) and their associated serialization utilities. This eliminates the previous event-driven workflow execution model and its associated state management and error handling mechanisms.
flowforge · high confidence
Test coverage
Add comprehensive test suite for concurrent execution, error handling, and serialization; Added CLI integration tests; Added comprehensive CLI test suite; Added comprehensive test coverage for analysis modules; Added performance benchmarks and server audit tests; Added test coverage for control flow routines; Added tests for new builtin routines and registration; Added unit tests for data processing and utility routines; Added unit tests for text processing routines.
Dependencies
Routilux 0.14.1: Renamed from FlowForge, added CLI and server extras, and upgraded dependencies
The package has been renamed from FlowForge to Routilux, with the Python version requirement raised to 3.8–3.14. New optional dependency groups have been introduced: 'cli' (featuring Click, PyYAML, and Rich) and 'server' (featuring Uvicorn, FastAPI, and WebSockets), alongside a combined 'all' extra. The linter was switched from Black and Flake8 to Ruff, and the documentation theme was updated to Furo. Additionally, the core 'serilux' dependency was updated to version 0.3.1.
(dependencies) · medium confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 47 → 59 (+11.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 75 → 82 (+7.5)
- Architecture 100 → 100 (-0.5)
- Maturity 62 → 56 (-5.9)
- Readiness 63 → 61 (-1.9)
- Security 25 → 52 (+27.1)
Resolved (163)
- ConcurrentExecutionMonitor.print_detailed_report (cognitive 21) (playground/concurrent_execution_demo/concurrent_demo.py)
- ConcurrentExecutionMonitor.print_timeline (cognitive 66) (playground/concurrent_execution_demo/concurrent_demo.py)
- ConcurrentExecutionMonitor.print_timeline (cyclomatic 31) (playground/concurrent_execution_demo/concurrent_demo.py)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- DataAggregator._custom_merge (cognitive 19) (playground/analyzer_demo/demo_routines.py)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (examples/async_orchestration.py)
- Duplicated block (10 lines × 2) (playground/retry_serialization_demo/enhanced_retry_demo.py)
- Duplicated block (10 lines × 2) (playground/retry_serialization_demo/retry_demo.py)
- Duplicated block (10 lines × 2) (routilux/analysis/analyzers/workflow.py)
- Duplicated block (10 lines × 2) (routilux/analysis/exporters/workflow_d2.py)
- Duplicated block (10 lines × 2) (routilux/core/output.py)
- Duplicated block (10 lines × 2) (routilux/decorators.py)
- Duplicated block (10 lines × 2) (routilux/server/routes/flows.py)
- Duplicated block (11 lines × 2) (playground/misconfiguration_demo/misconfiguration_demo.py)
- Duplicated block (11 lines × 2) (routilux/server/routes/websocket.py)
- …and 143 more
New (206)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Critical CVE: [GHSA redacted] (uv.lock)
- Dependency hygiene PARTLY measured — Python dependencies read, no exact pin to grade for currency
- Documentation: no project overview (docs/ID_USAGE_GUIDE.md)
- Dormant codebase
- Duplicated block (10 lines × 2) (playground/retry_serialization_demo/enhanced_retry_demo.py)
- Duplicated block (10 lines × 2) (playground/retry_serialization_demo/enhanced_retry_demo.py)
- Duplicated block (10 lines × 2) (routilux/core/output.py)
- Duplicated block (10 lines × 2) (routilux/core/output.py)
- Duplicated block (10 lines × 2) (routilux/server/routes/flows.py)
- Duplicated block (10 lines × 5) (routilux/builtin_routines/control_flow/splitter.py)
- Duplicated block (104 lines × 2) (routilux/analysis/analyzers/workflow.py)
- Duplicated block (10–11 lines × 2) (routilux/core/output.py)
- Duplicated block (11 lines × 2) (routilux/decorators.py)
- Duplicated block (11–115 lines × 8) (routilux/server/routes/jobs.py)
- Duplicated block (12 lines × 2) (examples/error_handling_example.py)
- …and 186 more
Architecture
- Unchanged — 0 containers · 1 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
lzjever/routilux was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 3a86477657090215dc3f514aa267679f5a111906 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.