Frequently Asked Questions
General
How do you use circuits?
- Have you read the website ?
- Have you looked at the various examples ?
See: https://code.google.com/p/circuits/source/browse/#hg/examples
What is circuits ?
- circuits is an event-driven framework with a high focus on Component architectures making your life as a software developer much easier
- circuits allows you to write maintainable and scalable systems easily
Would you consider writing networking based programs using circuits versus Twisted matrix ?
- YES absolutely. I always have.
Twisted (''to be perfectly honest'') is: * Complicated * Hard to understand * Not light weight
circuits is: * Simple * Consistent * Robust * Easy to understand * Very light weight.
GUI programming: Would circuits integrate with some GUI frameworks ?
- This is definitely possible.
- Currently I have no adapters for any GUI frameworks. but please feel free to write and submit a Component :)
What are the concepts behind circuits ?
a) Everything is a Component b) Components communicate by propagating Events
Also: * Components can be interlinked * Components are capable of managing their own Events and the Events of other Components.
How would you compare circuits to Twisted ?
- circuits is simpler
- circuits is maintainable
- circuits has a nicer cleaner architecture: See [source:docs/graphs/ Dependency Graphs]
- circuits is Component based.
- circuits is purely 100% Event and asynchronous.
Can Components reside in different processes and talk to each others ?
- YES
- Currently in the works:
- Process Component using the Python multiprocessing library.
Is there any restriction on the OS that circuits can run on ?
- No. Although:
- I only test on Linux and Mac OS X (''I don't have Windows to test on'').
- Testers Welcome!
What version of Python does circuits work with ?
- Currently circuits is tested with:
- Python 2.5
Since circuits is an event-driven framework, how are you handling unit/integration tests ?
I'm lead to understand that unit-testing with event-driven software is often difficult if actually possible.
Are you using something akin to TwistedTrial ?
Are you running unit-tests across distributed test environments ?
- circuits is not only a very good event-driven framework, but also a great Component framework.
- Have a look at the [source:circuits/tests/ unit tests] that test the core of circuits.
Can circuits be used for concurrent or distributed programming ?
YES absolutely. See the [source:examples/primes.py Distributed Prime number finder]
See also: Tutorial, Mailing Lists, IRC Channels
Code