A lightweight modular web application framework for Java based on Bootlace, tinytemplate and uHTTP that aims to be fast, flexible and fun to use.
Jenny is based on just 3 of our own projects, each of which was written from the ground up to be as simple as possible and avoid requiring large external 3rd party libraries and frameworks.
- Bootlace. A JPMS based plugin framework.
- uHTTPD. An embeddable HTTP/HTTPs server.
- tinytemplate. A simple but flexible string templating library.
This framework does not use the servlet API, instead it relies on uHTTPD's native API.
- Dynamic loading of extensions, add and remove functionality while the server is running
- Plain and pure Java. No reflection, dependency injection, annotation scanning, AOP or other weirdness.
Using Bootlace's module layers, Jenny is made up of extensions. There are 2 classes of extensions.
Framework extensions provide some common piece of functionality that may be shared and used by multiple dependent plugins. This saves individual plugins including their own copies of such libraries, the framework is guaranteed to provide them.
- dbus. Provides access to DBus-Java, used to access and provide services over D-Bus.
- logging. Adds the SLF4J logging framework.
- jna. Allows plugins to access other native libraries.
Plugins Jenny comes with a suite a plugins to help you build your application.
- auth-linux. Linux PAM authentication.
- bootstrap5. Adds Bootstrap 5 stylesheets and scripts.
- bootswatch. Provides open source Bootswatch themes for Bootstrap.
- config. Simple INI file based configuration facilities for applications to use.
- io. Websocket based JSON messaging framework.
- plugin-manager. Install or update plugins.
- toast. Popup "Toast" messages in your web applications.