Like the Twisted asynchronous network framework, Sparked is a python library and an application runner in once. Some of its features follow here:
- Robust startup and restart of the program; if it crashes, it's started again.
- Logging: keeps a rotated logfile for debugging purposes.
- Pidfile management for making sure your app starts only once.
- A GUI status window (based on GTK) for monitoring the state of the application and the state of the system (network, power supply, ...). Easy to add your own monitors.
- Fullscreen graphics display for creating interactive displays, based on the clutter library.
- Eventing system for broadcasting messages between spark modules.
- A state machine for guiding the application through different states, with callback functions.
- Possibility to run the sparked application as a twisted plugin for server applications, including a generic init.d startup script.
- Plug-and-play support for hardware: automatically start and stop parts of the program when hardware is added or removed.