Nebula 2.0 is designed as a proof-of-concept for MSL applications and a live testing tool to be used alongside front and backend development. Nebula includes a user interface for interacting with the local streams server, including many tools for testing MSL expressions. Together, these serve as the starting point for the development of other MSL applications.
HTML applications offer a wealth of frameworks and tools for generating cross-platform user interfaces. Each developer has his or her own favorite code editor, web UI framework, and hosting solution. Where all of these fail to deliver is in packaging an application so that it can fully benefit from its cross-platform nature on all three desktop operating systems: Mac, Windows, and Linux.
The Nebula solution brings together the foundational elements needed to build a modern web application with HTML that can be rapidly deployed to any user desktop — without requiring a developer account signup anywhere and without committing to any specific UI framework or backend.
Here are the components we’ve packaged for you to build with. All of them are also open source and you can plug-in other packages or tools you prefer:
MSL applications (viewers) communicate with a Hybrid Database (streams) over two separate WebSocket wires. The msl
wire sends and receives MSL expressions. For each MSL expression sent, the admin
wire also receives the value of the MSL expression, or its results after being processed by the Hybrid Database. Special commands called admin messages can also be sent on the admin
wire and only return results on that wire. These terms will be used extensively throughout this documentation.
One of Nebula's most valuable features is its ability to manage a list of messages that should be sent or have been sent over a WebSocket. Nebula 2.0 can dispatch a series of messages in a particular order, each one destined for an MSL or Admin connection, and track their individual responses. It can also detect if these responses deviate from the expected ones.
The MSL Communicator provides a way to send and receive MSL and admin messages from the local stream.
Nebula's Testbed makes it simple to submit a list of MSL expressions to the Hybrid Database and to check each one for expected results. Tests can be started and stopped at any point. An integrated Test Strip finds tests that match certain regression test coverage requirements.
Nebula's library functions allow working with MSL text files (text files with one MSL expression per line), including creating, editing, saving, and converting MSL text files back-and-forth between test lists.
As a development framework, Nebula 2.0 offers examples of several critical systems for building Mimix viewer applications. The framework focuses on simplifying the development of interfaces for MSL communications over a WebSocket, including many functions for managing WebSocket communications. Most importantly, Nebula provides a way to match outgoing messages to incoming ones, affording a type of synchronous communications over an asynchronous WebSocket wire.
Nebula 2.0 offers examples of numerous sophisticated UI interactions based on WebSocket connections with the local streams server, including extensive color controls, hover behaviors, modifier key detection, and "live" editing features via MVC.
Nebula 2.0 provides tools for debugging MSL applications, including debugging messaging and debug borders for UI elements.