<h1 align="center" style="border-bottom: none">
<a href="https://evitadb.io" target="_blank"><img src="https://raw.githubusercontent.com/FgForrest/evitaDB/dev/documentation/assets/img/evita.png"/></a><br>evitaDB
</h1>
<p align="center">Visit <a href="https://evitadb.io" target="_blank">evitadb.io</a> for the full documentation,
examples and guides.</p>
<p align="center">
<a href="https://github.com/FgForrest/evitaDB/releases" title="Build"><img src="https://img.shields.io/github/v/release/FgForrest/evitadb?color=%23ff00a0&include_prereleases&label=version&sort=semver"/></a>
<a href="https://codecov.io/gh/FgForrest/evitaDB"><img src="https://codecov.io/gh/FgForrest/evitaDB/branch/dev/graph/badge.svg?token=9VDOBPOBFL"/></a>
<a href="https://github.com/FgForrest/evitaDB" title="Platform"><img src="https://img.shields.io/badge/Built%20with-Java-red"/></a>
<a href="https://discord.gg/VsNBWxgmSw" title="Discord"><img src="https://img.shields.io/discord/999338870996992223?color=5865f2"/></a>
<a href="https://github.com/FgForrest/evitaDB/actions/workflows/ci-dev.yml" title="GitHub Workflow Status"><img src="https://img.shields.io/github/actions/workflow/status/FgForrest/evitaDB/ci-dev.yml"/></a>
<a href="https://github.com/FgForrest/evitaDB/blob/master/LICENSE" title="License"><img src="https://img.shields.io/badge/license-BSL_1.1-blue.svg"/></a>
</p>
<p align="center">
<a href="https://evitadb.io/en/blog" title="Blog">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/blog.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/blog.png" width="50px">
<img alt="Blog" src="https://img.icons8.com/carbon-copy/100/888888/blog.png" width="50px">
</picture>
</a>
<a href="https://evitadb.io/documentation/index" title="Documentation">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/saving-book.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/saving-book.png" width="50px">
<img alt="Documentation" src="https://img.icons8.com/carbon-copy/100/888888/saving-book.png" width="50px">
</picture>
</a>
<a href="https://evitadb.io/research/introduction" title="Research">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/microscope.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/microscope.png" width="50px">
<img alt="Research" src="https://img.icons8.com/carbon-copy/100/888888/microscope.png" width="50px">
</picture>
</a>
<a href="https://twitter.com/evitadb_io" title="Twitter">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/twitter.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/twitter.png" width="50px">
<img alt="Twitter" src="https://img.icons8.com/carbon-copy/100/888888/twitter.png" width="50px">
</picture>
</a>
<a href="https://discord.gg/VsNBWxgmSw" title="Discord">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/discord-square.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/discord-square.png" width="50px">
<img alt="Discord" src="https://img.icons8.com/carbon-copy/100/888888/discord-square.png" width="50px">
</picture>
</a>
<a href="https://github.com/FgForrest/evitaDB/" title="GitHub">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/github.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/github.png" width="50px">
<img alt="GitHub" src="https://img.icons8.com/carbon-copy/100/888888/github.png" width="50px">
</picture>
</a>
<a href="https://evitadb.io/rss.xml" title="RSS news feed">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/sf-ultralight/100/FFFFFF/rss.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/sf-ultralight/100/000000/rss.png" width="50px">
<img alt="RSS news feed" src="https://img.icons8.com/sf-ultralight/100/888888/rss.png" width="50px">
</picture>
</a>
<a href="https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9d1149b0c74e939dd766c7a93de3cdccf660797f" title="PGP public key">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/fingerprint-scan.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/fingerprint-scan.png" width="50px">
<img alt="PGP public key" src="https://img.icons8.com/carbon-copy/100/888888/fingerprint-scan.png" width="50px">
</picture>
</a>
<a href="https://jmh.morethan.io/?gist=abc12461f21d1cc66a541417edcb6ba7&topBar=Evita%20DB%20Latest%20performance%20results" title="Latest performance results">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.icons8.com/carbon-copy/100/FFFFFF/statistics.png" width="50px">
<source media="(prefers-color-scheme: light)" srcset="https://img.icons8.com/carbon-copy/100/000000/statistics.png" width="50px">
<img alt="Latest performance results" src="https://img.icons8.com/carbon-copy/100/888888/statistics.png" width="50px">
</picture>
</a>
</p>
evitaDB is a specialized database with easy-to-use API for e-commerce systems. It is a low-latency NoSQL in-memory engine
that handles all the complex tasks that e-commerce systems have to deal with on a daily basis. evitaDB is expected to act
as a fast secondary lookup/search index used by front stores.
We aim for an order of magnitude better latency (10x faster or better) for common e-commerce tasks than other SQL or
NoSQL database solutions on the same hardware specification. evitaDB should not be used for storing and processing primary data.
Why should you consider using evitaDB instead of Elasticsearch, MongoDB or relational database?
-
evitaDB is a database specialized for e-commerce tasks and has everything you need to implement an e-commerce catalog
-
evitaDB is more performant than Elasticsearch or PostgreSQL on the same
HW sizing in typical e-commerce scenarios
-
evitaDB has a ready to use API from the day one:
- GraphQL - targets rich JavaScript front-ends
- REST - targets server side applications
- gRPC - targets fast inter-server communication used in microservices
architecture and is used for the evitaDB client drivers
What's current status of evitaDB?
evitaDB is currently under active development. evitaDB is supported by the company FG Forrest,
which specializes in the development of e-commerce stores for large clients in the Czech Republic and abroad. evitaDB
concepts have been proven to work well in production systems with annual sales exceeding 50 million €.
Engineers from FG Forrest cooperate with academic team from University of Hradec Králové, so our
statements about evitaDB performance are backed by thorough (and unbiased) testing and research. All proofs can be found
in this repository, and you can run tests on your HW to verify our conclusions.
What's the license of the evitaDB
evitaDB is licensed under the Business Source License 1.1. Technically, it is not
an open source license, but is an open source friendly
license, because it automatically converts to one after a period of time specified in the license.
We're fans of open source, and we've benefited a lot from open source software (even the database engine uses some of it).
The database implementation has taken thousands of man-days and, if successful, will take several thousand more. We were
lucky to get an EU grant that partially funded the initial implementation, but we
need to build a self-sustaining project in the long run. Our company uses evitaDB for its own
commercial projects, so the development of the database is guaranteed, but without additional income the development
would be limited. That's why we have chosen this type of license, but in the end we allow you - our users - almost any
use.
In a nutshell:
- the BSL license covers a period of 4 years from the date of the software release
- 4 year old version of evitaDB becomes permissive Apache License, v.2
- both BSL and Apache licenses allow you to use evitaDB for OSS and/or commercial projects free of charge
- there is one exception - you may not offer and sell evitaDB as a service to third parties
That's it.
Read license FAQ
Prerequisites
To checkout Git repository on Windows you need to have long paths enabled:
git config --system core.longpaths true
evitaDB requires and is tested on OpenJDK 17.
Java applications support multiple platforms depending on the
[JRE/JD