Skip to main content

Asynchronous Component based Event Application Framework

Project description

Overview

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.

Documentation: http://packages.python.org/circuits

Project website: https://bitbucket.org/prologic/circuits/

PyPI page: http://pypi.python.org/pypi/circuits

Features

  • event driven

  • concurrency support

  • compnoent archiecture

  • asynchronous I/O components

  • no required external dependencies

  • full featured web framework (circuits.web)

Requirements

circuits has no dependencies beyond the Python Standard Library.

Some dependencies should be optionally installed if deployed on a Python-2.5 environment such as processing for multiprocessing concurrency support and for JSON support the simplejson package.

Installation

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

Alternatively, you may download the source package from the circuits Page on PyPI or the circuits Downloads page on the circuits Website; extract it and install using:

> python setup.py install

License

circuits is licensed under the MIT License.

Feedback

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.

Community

There is also a small community of circuits enthusiasts that you may find on the circuits IRC Channel and the circuits Mailing List.

Release Notes

Features

  • 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.

Bug Fixes

  • 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).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

circuits-1.4.tar.gz (487.8 kB view details)

Uploaded Source

Built Distributions

circuits-1.4-py2.6.egg (377.4 kB view details)

Uploaded Source

circuits-1.4-py2.5.egg (377.0 kB view details)

Uploaded Source

File details

Details for the file circuits-1.4.tar.gz.

File metadata

  • Download URL: circuits-1.4.tar.gz
  • Upload date:
  • Size: 487.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for circuits-1.4.tar.gz
Algorithm Hash digest
SHA256 847ea2eb1489c056b66525992400ae9d265ca39bb309463222784c9ecbe1255b
MD5 1eb6c782d6df21a078278e800793422b
BLAKE2b-256 cfeb8b1be40cc78059f5287df975995114194d131417dc364b4142187c50c571

See more details on using hashes here.

File details

Details for the file circuits-1.4-py2.6.egg.

File metadata

  • Download URL: circuits-1.4-py2.6.egg
  • Upload date:
  • Size: 377.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for circuits-1.4-py2.6.egg
Algorithm Hash digest
SHA256 faea85998557d9c12a2c6db610390d45943eb9e75179e1eb21d66fac7e0dbf45
MD5 34a48202e1f588439ec990fa03441235
BLAKE2b-256 b6b47343c618ca0328094fb16c0b16aa923825f9e2c412fa3bccc9cef30dde2e

See more details on using hashes here.

File details

Details for the file circuits-1.4-py2.5.egg.

File metadata

  • Download URL: circuits-1.4-py2.5.egg
  • Upload date:
  • Size: 377.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for circuits-1.4-py2.5.egg
Algorithm Hash digest
SHA256 4d1380c0d25581dec6b180563924e0840d60646571c96b9f13804a6ed8121680
MD5 d2b40255b8c4cb6e60e8851bbc163c5a
BLAKE2b-256 e6148e96e9ed5136d4ee11bc3081cfc9a5cd132d5f1d9fd7c74d474372521983

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page