netropy is a novel kind of lightweight virtual machine for processing structured information.
Unlike other VMs, such as Java's JVM, the .NET CLR, or Node.js, which in their philosophical foundation are based on object-oriented abstractions, this inventive technology does not need to define a new language for its purposes.
Instead, it uses a radically different and much simpler approach to information processing, resulting in unparalleled performance and scalability.
The extensible core engine is programmed in modestly modern C++*, and (when augmented with streaming compiler technology and a network layer based on the asio C++ library) gives you a full stack platform called the XENOmat.
In terms of speed, low overhead, and robustness it is well-suited for embedded applications, IoT edges, and critical infrastructure.
*The API relies on a few C++11 features with fallbacks using the boost libraries.
Introspection and observability are key design principles of netropy.
Here below we see the resource usage of this XENOmat among other processes on this server. As you may notice, the output shown is from the top command, which is called once every second.
Loading...
Monitoring services like that is easy with the <xeno:pipe/> service, as we have done in this fragment from the blueprint of this service.
Likewise, the service at
You don´t even need JavaScript to have the data update automatically. Simply configure the service to send a Refresh
header in its HTTP reply, and your browser will do that for you. The service used above, at
Exposing the servers blueprint (as we do here) might not be a good idea for production systems. As always, with great power comes great responsibility...
Started as a private research project in 2004, it evolved into a full-blown product for building RESTful HATEOAS applications in 2009 (you can tell from the so-last-decade styling here), and eventually matured into the present full-stack reactive real-time processing platform during early 2014.
Over the years, netropy often has been used as an agile prototyping tool (e.g. configured to serve mock SOAP replies while finishing the frontend, instead of waiting for the other team to eventually get their bloated J2EE backend working).
It has also proven itself as a fun and easy way to hack IoT stuff with the Raspberry Pi and has steadily fulfilled its purpose as the foundation of a mission-critical system for controlling rod pumping systems.
netropy marvels as a platform for microservices, makes a great IoT backend, and is a kind of Swiss army knife for bringing your legacy data wherever you need it.
Please take a few minutes to get an overview of the concepts covered by this software:
Then, simply fetch the server binary, get a blueprint, and you are up running. For 64-bit Linux, it takes no more than
curl -O https://netropy.online/distribution/ubuntu/xenomat chmod 700 xenomat curl -O https://netropy.online/download/blueprint.xml ./xenomat -d
The -d
flag will make the server run in debug (console) mode.
Running xenomat -h
will display the command line syntax.
The mandatory minimal application.
Note the importance of the trailing slash on the URL - it gives a different context (the page suddenly can't resolve the stylesheet given by a relative link).
Get a graphical overview over this <xeno:space/>.
XENOmat has full introspection, which lets you visualise your system with standard web technologies, such as letting the browser apply XSLT transformations.
A plain XML version (the actual source file) can be viewed here.
A small AJAX application for modifying this
<xeno:space/>. From long time before anything like JSFiddle or Gists and cloud snippets existed. Useful for fast prototyping a backend. Of course you can use curl
as well with any <xeno:stash/>.
Using the <xeno:sql/> service to retrieve data from an Access™ database and letting the browser XSL‑Transform the resulting XML to XHTML.
Currently only working on Windows hosts, as the Linux/Darwin ports of the service (covering sqlite3, postgres, and mysql) are not completed. The jury is still out on which strategy to choose.
Anyway, you might have a look at the source to see how netropy connects to SQL.
A complete distributed statemachine in only 100 lines of code. There's also a German version.
A pure CSS animated SVG clock. No JavaScript involved, the animation is generated on the server to show the right time of day.
Much of netropy is open source, licensed under the Netropy No Bullshit Licence (N2BL), which basically is a liberal BSD-style license.
The C++ API and examples are starting to show up on github.