Buster is best described by the following blog post: http://vis.renci.org/jeff/2009/03/31/almost-but-not-quite-entirely-like-frp/
It is an engine for orchestrating large, complex, and multifaceted applications by couching them in terms of time, events, a bus,
behaviours, and widgets. Time is continuous and infininte. Events are discrete and exist for a particular time. The bus is a
discrete sample of time made available to behaviours. Behaviours are continuous and exist for all time, but sample time via
the bus. They filter Events to determine what is on the bus at future times. Widgets are input-only objects that sample the
outside world and assign events to discrete portions of time.
Buster is designed to be flexible, with a flexible event model and the ability to add custom data to events, and designed to be
high performance. It is simple to integrate with Gtk while at the same time able to handle other kinds of resources, like files
and sockets.