Nitro aims to be the quickest way to author multi-platform apps.
Currently a work in progress
Recall how simple it is to author interactive command line applications using Python's built-in
Nitro brings that same level of simplicity to authoring web applications:
And here's a more elaborate example with seven pages in seven Python statements:
One language, one codebase, multiple screens.
- Write your app in Python, R, Julia, or Go.
- Access it from six different platforms: web, iOS, Android, Linux, macOS, and Windows.
Who is it for?¶
Nitro is for you if:
- You know Python.
- You want it to look beautiful, with a simple and friendly user experience.
- You want to write the least amount of code necessary, and ship fast!
H2O Nitro is experimental software. API is subject to change. Do not use in production.
Critical missing features include data visualization, back-button (history) support, internationalization and localization.
The API is mostly stable, but expect minor changes while we ship support for at least one other language (R, Julia, Go planned), and compile apps to mobile or desktop.
- Library. Nitro is a library, not a server.
- Less Code. Laser-focused on keeping application code simple, concise, and clear.
- Simplicity. Page flow follows code flow.
- Brevity. Lowest number of lines of code for expressing solutions to a given problem.
- Clarity. Write apps without jumping through callbacks, request handlers, or event handlers.
- Minimal API. Only three functions:
option(), and optionally
- Batteries-included. Huge library of sophisticated, accessibility-friendly widgets and data visualizations.
- Prototyping-to-production. Carefully designed API to rapidly prototype new ideas, then progressively improve presentation and aesthetics over time without affecting initial implementation simplicity, or sacrificing control.
- Unix philosophy. Tries to do one thing and do it well: display interactive user interfaces. Bring your own web app/server of choice and follow its recommendations for hosting, deployment, security, monitoring, metrics and data management.
- Extensively documented.
- See https://nitro.h2o.ai/ for documentation.
nitro run https://nitro.h2o.ai/docs.pyto run interactive docs locally with 150+ live examples.
Differences from H2O Wave¶
TL;DR: Use Wave for building visualization-heavy analytical dashboards. For everything else, use Nitro.
- Deployment. Nitro is a library, not a server. It's a heavily stripped-down version of Wave with a different, simpler API, designed for integration with existing frameworks, and cross-compiling for mobile and desktop apps.
- Content Management. Wave is capable of storing and broadcasting content and data, making it simple to build dashboards without having to deal with data management. Nitro has no such features.
- API. Wave's API is dashboard-oriented, and has several features that make it easy to develop and deploy real-time analytics and dashboards easily. Nitro's API is page-flow-oriented, and makes it radically simple to author sophisticated workflows and wizards without dealing with callback functions and request handlers.