PushMode - HTML streaming for Java

PushMode is a server-side Java library that streams web app's HTML output down to the browser while user's actions are streamed back to the server. The only code the browser ever sees is a tiny JavaScript file. Application effectively runs all on the server, but interactivity is almost the same as if it was running in the browser. This architecture has its advantages. PushMode is reactive by default as it is based on Hookless.


Read-only streaming of HTML to the client is fairly stable. Streaming of user input to the server is early alpha. Browser APIs (e.g., history manipulation) aren't implemented at all. Development stage is tracked on package and class level using Stagean annotations.


Get PushMode from Maven Central:


Or clone sources from GitHub or Bitbucket. Don't forget to configure your build for Java 11+. Sources and binaries are distributed under Apache License 2.0.

If your project is a Java module, add the following declaration to your module-info.java:

requires com.machinezoo.pushmode;


You can use javadoc for reference. Some classes are not documented, so you might have to peek in the source code.


PushMode is being developed by Robert Važan. If you have any suggestions, including requests for documentation, report an issue (GitHub, Bitbucket) or submit a pull request (GitHub, Bitbucket). You can reach the author via email ....