[Haskell-cafe] ANN: Buster 0.99.1, a library for application orchestration that is not FRP

Jeff Heard jefferson.r.heard at gmail.com
Thu Apr 2 10:05:14 EDT 2009

Yes,sorry.  vis, not vs. http://vis.renci.org/buster

It is a bit like grapefruit's circuits, but where Grapefruit circuits
describe the flow of events from place to place, Buster never does.
Events exist for all behaviours, to be selected by name, group, or
source.  The other major difference is the |~| or "beside" operator,
which describes concurrent application of behaviours.

A last but somewhat minor thing is that the Event type is fairly
general, allowing for multiple data to be attached to a single event
and this data to be of many of the standard types (Int, String,
Double, ByteString, etc) as well as a user-defined type.  Of course,
such an event type could be defined for other FRP frameworks as well.

-- Jeff

On Thu, Apr 2, 2009 at 9:53 AM, minh thu <noteed at gmail.com> wrote:
> It's vis instead of vs:
> http://vis.renci.org/jeff/buster/
> 2009/4/2 Peter Verswyvelen <bugfact at gmail.com>:
>> Sounds vaguely like Grapefruit's circuits, but I could be very wrong...
>> The link you provided seems to be broken?
>> On Thu, Apr 2, 2009 at 3:05 PM, Jeff Heard <jefferson.r.heard at gmail.com>
>> wrote:
>>> Read more about it on its webpage: http://vs.renci.org/jeff/buster
>>> Yes, it’s to solve a particular problem.  And yes, this is a rough
>>> draft of an explanation of how it works.  I’ve not even really
>>> solidified the vocabulary yet, but I have this module which couches a
>>> large, abstract, interactive (both with the user and the system),
>>> multicomponent application in terms of a bus, inputs, behaviours, and
>>> events.
>>>    * Time is continuous and infinite.
>>>    * An event is a static, discrete item associated with a particular
>>> time.
>>>    * The bus is the discrete view of event in time at an instant.
>>>    * A widget is an IO action that assigns events to a particular
>>> time based only upon sampling the outside world (other events and
>>> behaviours are irrelevant to it).  e.g. a Gtk Button is a widget, a
>>> readable network socket is an widget, the mouse is an widget, the
>>> keyboard is an widget, a multitouch gesture engine is a widget.
>>>    * A behaviour is a continuous item — it exists for the entire
>>> program and for all times — which maps events on the bus to other
>>> events on the bus.  It is an IO action as well — where widgets only
>>> sample the outside world and are in a sense read only, behaviours
>>> encapsulate reading and writing.
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list