Xmit is a set of event broadcasting libraries, based on a event/observer pattern largely but it is meant to be more customizable without adding code bloat to the final product.
Some novel features. - Variable Builds to match precisely the features that are needed for a project and to place as little unused code into a project as possible. To this end, a base line feature set is used that can be augmented by mixins as needed.
- *Customizable event Channels* for more control over how listeners are run. Default is basic First In First Out FIFO order. That is, the listeners that are added first are run first when Xmit is called. There is also an option now for ChannelXForm, which will allow listeners to each modify broadcast data in turn, much like a map reduce feature or stacked decorator functions. - *Multiple Build Modes* for mo`e control over what is included for which stage of production. Currently there are three build modes, DEBUG for development, USING for providing code to authors who will link to this code from elsewhere and FINAL for providing code after testing is complete. The differences are that DEBUG and USING provide parameter validations. FINAL eliminates these for compactness and simplicity.
Xmit will follow a basic hierarchical pattern.
- -Xmit instance.
*Xmit: The event broadcasting object.
*XmitThen: The event broadcasting object with a mixin to connect an xmit command to a promise. ( coming at later date)
*Channel: The channel is an object that holds a series of listeners or events. There are currently two channels available, Channel and ChannelXform. Neither has any validations.
- Channels based on workers.
- Channels based on sockets and network message passing.