A fast, elegant and versatile Java backend web framework.
Veronica is still in the early stages of its development and is missing proper documentation. As of now, it is advised that you refer to the code samples to check out Veronica's capabilities.
You can find a work in progress version of the documentation here.
Developed with ❤️ by Giorgio Acquati.
https://acquati.dev/
This is the first production ready release of Veronica. Here's what has changed from version 0.14-preview:
Veronica 1.0 adds support for Server-Side session storage. Currently, the framework provides two different implementations:
This implementation associates each session with a unique session id which is passed to the http cookie. The session data is stored kept in memory in a HashMap data structure. This provides very fast session data access, at the expense of server memory usage. This is ideal for small applications or fast prototyping.
This implementation stores session data inside of a Redis database. It makes use of the Jedis library to communicate with the database.
The validation features of Veronica have been re-written from scratch, to match the coding standards used in the most recent versions of the framework.
The pipeline structure has been greatly simplified, getting rid of obscure terminology used to describe its components.
Veronica now supports serving GraphQL API endpoints.
Veronica is now split into several modules. This allows developers to include only the functionalities that they need need in their project, minimizing the impact that Veronica has on application architecture. Here is a list of the current modules that shipped with this version of Veronica:
coreThis module contains the main components of a Veronica application. With this module alone, you have all you need to build a fully functional Veronica application.routingThis module contains the implementation of the Veronica radix router and its related components.pipelineThis module contains the implementation of the pipeline request handler.authThis module contains general authentication interfaces/classes. Currently, the only implementation of the authentication feature is provided by thehttp-basic-authmodule.http-basic-authFully featured implementation of the HTTP Basic Authentication standardsessionThis module contains general interfaces and classes for the Server Side Sessions feature.cookie-sessionThis module contains common classes for Server Side Sessions implementations that store session ids in HTTP Cookies.redis-sessionThis is an implementation of the Server Side Sessions feature using a Redis database to store session data.application-sessionThis is an implementation of the Server Side Sessions feature storing session data in the application.file-serverThis module contains the implementation of a simple static file server.graphqlThis module contains a simple implementation of a GraphQL endpoint in Veronica.validationThis module contains all classes related to request validation features.samplesThis is a special module containing Veronica sample applications
Veronica is distributed via Jitpack. Here are the installation instructions for Veronica 1.0
Gradle:
repositories {
...
maven { url 'https://jitpack.io' }
}
dependencies {
...
// Veronica 1.0 https://acquati.dev/veronica
implementation 'com.github.GioAc96:Veronica:core:1.0'
// implementation 'com.github.GioAc96:Veronica:routing:1.0'
// implementation 'com.github.GioAc96:Veronica:pipeline:1.0'
// implementation 'com.github.GioAc96:Veronica:file-server:1.0'
// implementation 'com.github.GioAc96:Veronica:auth:1.0'
// implementation 'com.github.GioAc96:Veronica:http-basic-auth:1.0'
// implementation 'com.github.GioAc96:Veronica:session:1.0'
// implementation 'com.github.GioAc96:Veronica:cookie-session:1.0'
// implementation 'com.github.GioAc96:Veronica:redis-session:1.0'
// implementation 'com.github.GioAc96:Veronica:application-session:1.0'
// implementation 'com.github.GioAc96:Veronica:graphql:1.0'
// implementation 'com.github.GioAc96:Veronica:validation:1.0'
}Maven:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>core</artifactId>
<version>1.0</version>
</dependency>
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>routing</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>pipeline</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>file-server</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>auth</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>http-basic-auth</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>session</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>cookie-session</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>redis-session</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>application-session</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>graphql</artifactId>
<version>1.0</version>
</dependency!-->
<!--dependency>
<groupId>com.github.GioAc96.Veronica</groupId>
<artifactId>validation</artifactId>
<version>1.0</version>
</dependency!-->