Asynchronous Component based Event Application Framework
circuits is a Lightweight Event driven and Asynchronous Application Framework for the Python Programming Language with a strong Component Architecture.
circuits also includes a lightweight, high performance and scalable HTTP/WSGI web server as well as various I/O and Networking components.
To take full advantage of circuits and it’s architecture, circuits requires that your application be designed in terms of components and their interactions (events) with each other. An application written using the circuits application framework is maintainable, scalable and easy to develop.
The circuits framework has a certain elegance making it a rather attracting feature. New features are built into the framework with this in mind and circuits “eats it’s own dog food” by having a feature-rich library of components built atop the core components.
Project website: https://bitbucket.org/prologic/circuits/
PyPI page: http://pypi.python.org/pypi/circuits
- event driven
- concurrency support
- compnoent archiecture
- asynchronous I/O components
- no required external dependencies
- full featured web framework (circuits.web)
circuits has no dependencies beyond the Python Standard Library.
The simplest and recommended way to install circuits is with pip. You may install the latest stable release from PyPI with pip:
> pip install circuits
If you do not have pip, you may use easy_install:
> easy_install circuits
> python setup.py install
circuits is licensed under the MIT License.
I welcome any questions or feedback about bugs and suggestions on how to improve circuits. Let me know what you think about circuits. I am on twitter @therealprologic.
Do you have suggestions for improvement? Then please Create an Issue with details of what you would like to see. I’ll take a look at it and work with you to either incorporate the idea or find a better solution.
- circuits.core: NEW workers and futures modules. This adds thread and process concurrency support to circuits.
- circuits.web: NEW Web Client for circuits.web
- circuits.core: Implemented a basic handler cache on the Manager. Improves overall performance of circuits by as much as ~33%
- circuits.core: Passing keyword argument sleep to Manager.start(…) or Manager.run(…) is now deprecated.
- circuits.app: Fixed Issue #14.
- circuits.web: Fixed streaming support for wsgi.Gateway
- circuits.tools: Catch InvocationError from environments where pydot is installed but no graphviz executable (Mac OS X)
- circuits.web: Fixed a bug where if no “Content-Length” was provided (By Google Chrom’s WebSocket) but a body was given circuits.web would expect more data to be given.
- circuits.net: Catch gaierror exceptions on calls to gethostbyname() to determine where we’re binding. Fix for misconfigured desktop environments.
- circuits.core: Ignore ValueError raised if we can’t install signal handlers such as when running as a Windows Service.
- circuits.web: Fixed -m/–multiprocessing mode and modified to accept a no. of processes to start (circuits.web binary/script).
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|circuits-1.4-py2.5.egg (377.0 kB) Copy SHA256 hash SHA256||Egg||2.5|
|circuits-1.4-py2.6.egg (377.4 kB) Copy SHA256 hash SHA256||Egg||2.6|
|circuits-1.4.tar.gz (487.8 kB) Copy SHA256 hash SHA256||Source||None|