Welcome!
Javelit is a Java lightning fast data app development framework, heavily inspired by Streamlit.
Javelit makes it dead simple to create data apps in minutes.
Build dashboards, back-offices, generate reports, showcase APIS, etc...
The best part? You can run your Javelit app standalone, or embed it right into your existing Java project.
Not convinced? It's ok. Read the Oh No! Another high-level framework and Shouldn't I use Streamlit? sections.
Javelit requires A Java JDK >= 21.
There are 2 main ways to install and run Javelit:
- as a standalone CLI and app runner
- embedded in an existing Java project
You'll find a short version below. Read the doc to get more details for each method.
- Install the CLI (JBang is highly recommended)
# recommended: install with jbang jbang app install javelit@javelit # vanilla curl -L -o javelit.jar https://repo1.maven.org/maven2/io/javelit/javelit/0.56.0/javelit-0.56.0-all.jar
- Validate the installation by running the Hello app:
# jbang javelit hello # vanilla java -jar javelit.jar hello
- Play with the Hello World!
- Want to see a fancier app ?
javelit run https://raw.githubusercontent.com/javelit/javelit/main/examples/getting_started/App.java
Find more details in the standalone installation doc. Don't forget to install the JBang IDE plugin for completion and highlighting!
Once you're ready to go further, look at the fundamental concepts or jump straight into creating your first app.
- Add the dependency to your project
<dependency> <groupId>io.javelit</groupId> <artifactId>javelit</artifactId> <version>0.56.0</version> </dependency>
- Launch the server in your project
void startServer() { // prepare a Javelit server var server = Server.builder(() -> app(), 8888).build(); // start the server - this is non-blocking, user thread server.start(); } // the Javelit webapp void app() { Jt.text("Hello World").use(); }
Find more details in the embedded installation doc. Don't forget to look at the IDE hot-reload setup!
Once you're ready to go further, look at the fundamental concepts or jump straight into creating your first app.
Create a new file named App.java in your project directory with the following code:
Run it:
Want more ?
look at the fundamental concepts, jump straight into creating your first app.
Not ambitious enough? Create a LangChain4J AI multipage app.
Javelit is not another abstraction layer that hides the HTML/CSS/Javascript. That alone is not enough to significantly improve productivity. The real pain is in bindings: handling events, reacting to changes, passing messages, parsing results... you get it.
Javelit promise is to remove all of that.
Here is an example:
That's it. That's the entire webapp code. Move the slider, and the size variable immediately reflects the latest frontend value. What's the execution order then ? Top-to-bottom. Every time something changes in the app, the logic re-runs from top to bottom, using the most up-to-date values from the frontend.
We hope this sparks your curiosity!
By the way, once you have javelit installed, you can run this example with
Javelit:
- is Java-native
- can be embedded directly into your existing Java project.
If neither of those points matters to you... well, farewell. You should use Streamlit.
If you're still there: thanks. There are plenty of smaller differences that make Javelit worth a try: simpler state management,
easier custom components, and more.
Really? Thanks for you interest in improving Javelit! 🚡
To start a discussion, open an issue or a thread in the forum.
For development, see DEVELOPMENT.md.
Javelit is free and open-source, licensed under the Apache 2.0 license.
.png)




