Developers

Speedment is a Java Stream ORM toolkit and runtime. The toolkit analyzes the metadata of an existing SQL database and automatically creates a Java representation of the data model. This powerful ORM enables you to create scalable and efficient Java applications using standard Java streams with no need to type SQL or use any new API. Speedment was originally developed by researchers and engineers based in Palo Alto with the purpose to simplify and streamline the development of Java database applications by leveraging the Java Stream API.

Quick Start

Assuming you have Maven installed and a relational database available, you can start using Speedment in a minute:

Expressing SQL as Java Streams

There is a remarkable resemblance between Java streams and SQL as summarized in the simplified table. This means there is no need for manually writing SQL-queries any more. You can remain in a pure Java world!
// Searches are optimized in the background!
Optional longFilm = films.stream()
    .filter(Film.LENGTH.greaterThan(120))
    .findAny();
Results in the following SQL query:
SELECT `film_id`,`title`,`description`,`release_year`,
  `language_id`,`original_language_id`,`rental_duration`,`rental_rate`,
  `length`,`replacement_cost`,`rating`,`special_features`,
  `last_update` 
FROM `sakila`.`film
WHERE `length` > 120;
You can try it out yourself using the Initializer on this site.

Supported Databases

Speedment Open Source: MySQL, MariaDB and PostgreSQL. Speedment Enterprise Edition: Oracle, SQL Server, DB2, AS400 and all of the open source databases above.

In-Memory Acceleration

In addition to the Stream API, Speedment has an Enterprise Datastore with in-memory optimization. By simply adding a single line of Java code to the configuration, queries that would normally take several seconds can be resolved in milliseconds. The Datastore is designed from the bottom up to leverage the power of the Java 8 Streams. You can try out the Speedment Enterprise Datastore for free here.

Documentation

You can read the online Speedment User’s Guide here!

Tutorials

The tutorials are divided into three sections. The basics are covered in the first section without any expected prior knowledge of Speedment. This builds a foundation of knowledge needed to fully benefit from the following tutorials.
Basics
Sample applications
Extending Speedment

Contribute

The Speedment Open Source project is available under the Apache 2 License! If you want to contribute to the project, file an issue or simply browse the source code, visit our GitHub page!