{"id":14976020,"url":"https://github.com/fgforrest/evitadb","last_synced_at":"2026-01-31T13:50:16.632Z","repository":{"id":77989644,"uuid":"605189726","full_name":"FgForrest/evitaDB","owner":"FgForrest","description":"evitaDB is a specialized database with an 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.","archived":false,"fork":false,"pushed_at":"2026-01-28T09:11:43.000Z","size":140532,"stargazers_count":66,"open_issues_count":79,"forks_count":7,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-01-28T09:55:38.146Z","etag":null,"topics":["catalog","database","e-commerce","faceted-search","graphql-api","grpc-api","hierarchy-structure","histogram","in-memory-database","nosql-database","oltp","price-search","rest-api"],"latest_commit_sha":null,"homepage":"https://evitadb.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FgForrest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-22T16:29:30.000Z","updated_at":"2026-01-28T09:11:48.000Z","dependencies_parsed_at":"2024-11-06T15:31:45.602Z","dependency_job_id":"c44da90c-6b07-4b5d-8813-592e8257f5ba","html_url":"https://github.com/FgForrest/evitaDB","commit_stats":{"total_commits":2796,"total_committers":11,"mean_commits":254.1818181818182,"dds":"0.32188841201716734","last_synced_commit":"b32de8fe5e42f9b860cf1f914ce766be0af94201"},"previous_names":[],"tags_count":159,"template":false,"template_full_name":null,"purl":"pkg:github/FgForrest/evitaDB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FgForrest%2FevitaDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FgForrest%2FevitaDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FgForrest%2FevitaDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FgForrest%2FevitaDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FgForrest","download_url":"https://codeload.github.com/FgForrest/evitaDB/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FgForrest%2FevitaDB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28944789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T13:02:32.153Z","status":"ssl_error","status_checked_at":"2026-01-31T13:00:07.528Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["catalog","database","e-commerce","faceted-search","graphql-api","grpc-api","hierarchy-structure","histogram","in-memory-database","nosql-database","oltp","price-search","rest-api"],"created_at":"2024-09-24T13:53:08.949Z","updated_at":"2026-01-31T13:50:16.601Z","avatar_url":"https://github.com/FgForrest.png","language":"Java","readme":"\u003ch1 align=\"center\" style=\"border-bottom: none\"\u003e\n    \u003ca href=\"https://evitadb.io\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/FgForrest/evitaDB/dev/documentation/assets/img/evita.png\"/\u003e\u003c/a\u003e\u003cbr\u003eevitaDB\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eVisit \u003ca href=\"https://evitadb.io\" target=\"_blank\"\u003eevitadb.io\u003c/a\u003e for the full documentation,\nexamples and guides.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/FgForrest/evitaDB/releases\" title=\"Build\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/FgForrest/evitadb?color=%23ff00a0\u0026include_prereleases\u0026label=version\u0026sort=semver\"/\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://codecov.io/gh/FgForrest/evitaDB\"\u003e\u003cimg src=\"https://codecov.io/gh/FgForrest/evitaDB/branch/dev/graph/badge.svg?token=9VDOBPOBFL\"/\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://github.com/FgForrest/evitaDB\" title=\"Platform\"\u003e\u003cimg src=\"https://img.shields.io/badge/Built%20with-Java-red\"/\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://discord.gg/VsNBWxgmSw\" title=\"Discord\"\u003e\u003cimg src=\"https://img.shields.io/discord/999338870996992223?color=5865f2\"/\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://github.com/FgForrest/evitaDB/actions/workflows/ci-dev.yml\" title=\"GitHub Workflow Status\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/FgForrest/evitaDB/ci-dev.yml\"/\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://github.com/FgForrest/evitaDB/blob/master/LICENSE\" title=\"License\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-BSL_1.1-blue.svg\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://evitadb.io/en/blog\" title=\"Blog\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/blog.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/blog.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"Blog\" src=\"https://img.icons8.com/carbon-copy/100/888888/blog.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://evitadb.io/documentation/index\" title=\"Documentation\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/saving-book.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/saving-book.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"Documentation\" src=\"https://img.icons8.com/carbon-copy/100/888888/saving-book.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://evitadb.io/research/introduction\" title=\"Research\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/microscope.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/microscope.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"Research\" src=\"https://img.icons8.com/carbon-copy/100/888888/microscope.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://twitter.com/evitadb_io\" title=\"Twitter\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/twitter.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/twitter.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"Twitter\" src=\"https://img.icons8.com/carbon-copy/100/888888/twitter.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://discord.gg/VsNBWxgmSw\" title=\"Discord\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/discord-square.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/discord-square.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"Discord\" src=\"https://img.icons8.com/carbon-copy/100/888888/discord-square.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://github.com/FgForrest/evitaDB/\" title=\"GitHub\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/github.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/github.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"GitHub\" src=\"https://img.icons8.com/carbon-copy/100/888888/github.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://evitadb.io/rss.xml\" title=\"RSS news feed\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/sf-ultralight/100/FFFFFF/rss.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/sf-ultralight/100/000000/rss.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"RSS news feed\" src=\"https://img.icons8.com/sf-ultralight/100/888888/rss.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://keyserver.ubuntu.com/pks/lookup?op=get\u0026search=0x9d1149b0c74e939dd766c7a93de3cdccf660797f\" title=\"PGP public key\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/fingerprint-scan.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/fingerprint-scan.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"PGP public key\" src=\"https://img.icons8.com/carbon-copy/100/888888/fingerprint-scan.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://jmh.morethan.io/?gist=abc12461f21d1cc66a541417edcb6ba7\u0026topBar=Evita%20DB%20Latest%20performance%20results\" title=\"Latest performance results\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.icons8.com/carbon-copy/100/FFFFFF/statistics.png\" width=\"50px\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://img.icons8.com/carbon-copy/100/000000/statistics.png\" width=\"50px\"\u003e\n      \u003cimg alt=\"Latest performance results\" src=\"https://img.icons8.com/carbon-copy/100/888888/statistics.png\" width=\"50px\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nevitaDB is a specialized database with easy-to-use API for e-commerce systems. It is a low-latency NoSQL in-memory engine \nthat handles all the complex tasks that e-commerce systems have to deal with on a daily basis. evitaDB is expected to act \nas a fast secondary lookup/search index used by front stores.\n\nWe aim for an order of magnitude better latency (10x faster or better) for common e-commerce tasks than other SQL or \nNoSQL database solutions on the same hardware specification. evitaDB should not be used for storing and processing primary data.\n\n## Why should you consider using evitaDB instead of Elasticsearch, MongoDB or relational database?\n\n- evitaDB is a database specialized for e-commerce tasks and has everything you need to implement an e-commerce catalog\n- evitaDB is [more performant](documentation/performance/performance_comparison.md) than Elasticsearch or PostgreSQL on the same\n  HW sizing in typical e-commerce scenarios\n- evitaDB has a ready to use API from the day one:\n\n    - [GraphQL](documentation/user/en/use/connectors/graphql.md) - targets rich JavaScript front-ends\n    - [REST](documentation/user/en/use/connectors/rest.md) - targets server side applications\n    - [gRPC](documentation/user/en/use/connectors/grpc.md) - targets fast inter-server communication used in microservices \n      architecture and is used for the evitaDB client drivers\n\n## What's current status of evitaDB?\n\nevitaDB is currently under active development. evitaDB is supported by the company [FG Forrest](https://www.fg.cz),\nwhich specializes in the development of e-commerce stores for large clients in the Czech Republic and abroad. evitaDB\nconcepts have been proven to work well in production systems with annual sales exceeding 50 million €.\n\nEngineers from FG Forrest cooperate with academic team from [University of Hradec Králové](https://www.uhk.cz), so our\nstatements about evitaDB performance are backed by thorough (and unbiased) testing and research. All proofs can be found\nin [this repository](https://github.com/FgForrest/evitaDB-research), and you can run tests on your HW to verify our conclusions.\n\n## What's the license of the evitaDB\n\nevitaDB is licensed under the [Business Source License 1.1](LICENSE). Technically, it is not\nan open source license, but is an [open source friendly](https://itsfoss.com/making-the-business-source-license-open-source-compliant/)\nlicense, because it automatically converts to one after a period of time specified in the license.\n\nWe're fans of open source, and we've benefited a lot from open source software (even the database engine uses some of it).\nThe database implementation has taken thousands of man-days and, if successful, will take several thousand more. We were\nlucky to get an [EU grant](https://evitadb.io/project-info) that partially funded the initial implementation, but we\nneed to build a self-sustaining project in the long run. [Our company](https://www.fg.cz) uses evitaDB for its own\ncommercial projects, so the development of the database is guaranteed, but without additional income the development\nwould be limited. That's why we have chosen this type of license, but in the end we allow you - our users - almost any\nuse.\n\n**In a nutshell:**\n\n- the BSL license covers a period of 4 years from the date of the software release\n- 4 year old version of evitaDB becomes [permissive Apache License, v.2](https://fossa.com/blog/open-source-licenses-101-apache-license-2-0/)\n- both BSL and Apache licenses allow you to use evitaDB for OSS and/or commercial projects free of charge\n- there is one exception - you may not offer and sell evitaDB as a service to third parties\n\nThat's it.\n\n[Read license FAQ](https://evitadb.io/documentation/use/license)\n\n## Prerequisities\n\nTo checkout Git repository on Windows you need to have long paths enabled:\n\n```shell\ngit config --system core.longpaths true\n```\n\nevitaDB requires and is tested on OpenJDK 17.\n\nJava applications support multiple platforms depending on the\n[JRE/JDK vendor](https://wiki.openjdk.org/display/Build/Supported+Build+Platforms). All major hardware\narchitectures (x86_64, ARM64) and operating systems (Linux, MacOS, Windows) are supported. Due to the size of our\nteam, we regularly test evitaDB only on the Linux AMD64 platform (which you can also use on Windows thanks to the\n[Windows Linux Subsystem](https://learn.microsoft.com/en-us/windows/wsl/install)). The performance can be worse,\nand you may experience minor problems when running evitaDB on other (non-Linux) environments. Please report any bugs\nyou might encounter, and we'll try to fix them as soon as possible.\n\n## How to build evitaDB\n\nevitaDB is built using [Maven](https://maven.apache.org/). You can build the entire project by running the following\ncommand in the root directory of the project:\n\n```shell\nmvn clean install\n```\n\n**Maven setup**\n\nThe build uses Maven toolchains to select the correct JDK version. You must have JDK 17 installed and configured in your\nin your Maven toolchains. You can find more information about Maven toolchains in the [Maven Documentation](https://maven.apache.org/guides/mini/guide-using-toolchains.html).\n\nIn short, you need `~/.m2/toolchains.xml` in your home directory next to `~/.m2/settings.xml`:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF8\"?\u003e\n\u003ctoolchains xmlns=\"http://maven.apache.org/POM/4.0.0\"\n            xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n            xsi:schemaLocation=\"http://maven.apache.org/TOOLCHAINS/1.1.0 https://maven.apache.org/xsd/toolchains-1.1.0.xsd\"\u003e\n  \u003ctoolchain\u003e\n    \u003ctype\u003ejdk\u003c/type\u003e\n    \u003cprovides\u003e\n      \u003cversion\u003e17\u003c/version\u003e\n      \u003cvendor\u003eopenjdk\u003c/vendor\u003e\n      \u003cid\u003ejdk17\u003c/id\u003e\n    \u003c/provides\u003e\n    \u003cconfiguration\u003e\n      \u003cjdkHome\u003e/path/to/your/jdk17/installation/directory\u003c/jdkHome\u003e\n    \u003c/configuration\u003e\n  \u003c/toolchain\u003e\n\u003c/toolchains\u003e\n```\n\n## How this repository is organized\n\n- **documentation**: research documents, documentation, specifications\n- **evita_common**: shared functions, exceptions, data types, and common utilities\n- **evita_query**: query language (EvitaQL), query parser, and utilities for query handling\n- **evita_api**: public API of evitaDB including data type conversions and basic structures\n- **evita_engine**: implementation of the database engine core\n- **evita_store**: storage layer implementation\n  - **evita_store_key_value**: key-value store implementation with binary serialization using Kryo library\n  - **evita_store_entity**: entity storage format and Kryo serialization (shared between server and Java client)\n  - **evita_store_server**: server data structures persistence implementation\n  - **evita_traffic_engine**: traffic engine recorder for storing traffic data\n- **evita_export**: export services\n  - **evita_export_fs**: export service implementation for local file system\n  - **evita_export_s3**: export service implementation for S3-compatible storage\n- **evita_external_api**: web API implementations\n  - **evita_external_api_core**: shared logic for all web APIs, Armeria HTTP server integration, and common utilities\n  - **evita_external_api_graphql**: GraphQL API implementation\n  - **evita_external_api_grpc**: gRPC API implementation\n    - **shared**: shared classes between gRPC server and Java client (generated gRPC stubs)\n    - **server**: gRPC server implementation\n    - **client**: Java driver for client/server usage scenario\n    - **client_observability**: Java driver observability capabilities (OpenTelemetry integration)\n    - **client_all_in_one**: Java driver with all dependencies shaded to avoid conflicts (larger JAR due to gRPC and Armeria dependencies)\n  - **evita_external_api_rest**: REST API implementation with OpenAPI/Swagger support\n  - **evita_external_api_system**: System API for server management and monitoring\n  - **evita_external_api_lab**: evitaLab GUI client server support\n  - **evita_external_api_observability**: Observability API with Prometheus metrics and OpenTelemetry tracing\n- **evita_db**: Maven POM bundle for embedded evitaDB usage scenario\n- **evita_server**: standalone server with all APIs bundled\n- **evita_test**: test modules\n  - **evita_test_support**: utility classes that make writing integration tests with evitaDB easier\n  - **evita_functional_tests**: test suite verifying functional correctness of standard and edge cases of the API\n  - **evita_performance_tests**: JMH-based performance tests generating statistics for common operations\n- **jacoco**: Maven POM that allows to aggregate test coverage for entire project\n\n### Module dependency graph\n\n```mermaid\nflowchart TD\n    subgraph core[\"Core Modules\"]\n        common[evita_common]\n        query[evita_query]\n        api[evita_api]\n        engine[evita_engine]\n    end\n\n    subgraph store[\"Storage Layer\"]\n        store_kv[evita_store_key_value]\n        store_entity[evita_store_entity]\n        store_server[evita_store_server]\n        traffic[evita_traffic_engine]\n    end\n\n    subgraph export[\"Export\"]\n        export_fs[evita_export_fs]\n        export_s3[evita_export_s3]\n    end\n\n    subgraph external[\"External APIs\"]\n        api_core[evita_external_api_core]\n        api_graphql[evita_external_api_graphql]\n        api_rest[evita_external_api_rest]\n        api_system[evita_external_api_system]\n        api_observability[evita_external_api_observability]\n        api_lab[evita_external_api_lab]\n        subgraph grpc[\"gRPC\"]\n            grpc_shared[grpc_shared]\n            grpc_server[grpc_server]\n            grpc_client[java_driver]\n            grpc_client_obs[java_driver_observability]\n            grpc_client_aio[java_driver_all_in_one]\n        end\n    end\n\n    subgraph bundles[\"Bundles\"]\n        db[evita_db]\n        server[evita_server]\n    end\n\n    subgraph testing[\"Testing\"]\n        test_support[evita_test_support]\n        func_tests[evita_functional_tests]\n        perf_tests[evita_performance_tests]\n    end\n\n    %% Core dependencies\n    query --\u003e common\n    api --\u003e common\n    api --\u003e query\n    engine --\u003e common\n    engine --\u003e query\n    engine --\u003e api\n\n    %% Storage dependencies\n    store_kv --\u003e common\n    store_kv --\u003e engine\n    store_entity --\u003e store_kv\n    store_entity --\u003e engine\n    store_server --\u003e store_entity\n    store_server --\u003e store_kv\n    store_server --\u003e engine\n    traffic --\u003e engine\n    traffic --\u003e store_kv\n    traffic --\u003e store_server\n\n    %% Export dependencies\n    export_fs --\u003e engine\n    export_fs --\u003e api\n    export_s3 --\u003e engine\n    export_s3 --\u003e api\n\n    %% External API dependencies\n    api_core --\u003e api\n    api_core --\u003e engine\n    grpc_shared --\u003e api\n    grpc_shared --\u003e query\n    grpc_server --\u003e api_core\n    grpc_server --\u003e grpc_shared\n    grpc_client --\u003e api\n    grpc_client --\u003e grpc_shared\n    grpc_client_obs --\u003e api\n    grpc_client_obs -.-\u003e grpc_client\n    grpc_client_aio --\u003e grpc_client\n    api_graphql --\u003e api_core\n    api_graphql --\u003e store_server\n    api_rest --\u003e api_core\n    api_rest --\u003e store_server\n    api_system --\u003e api_core\n    api_system --\u003e store_server\n    api_observability --\u003e api_core\n    api_observability --\u003e store_server\n    api_observability --\u003e traffic\n    api_observability --\u003e grpc_server\n    api_observability --\u003e api_graphql\n    api_observability --\u003e api_rest\n    api_lab --\u003e api_core\n    api_lab --\u003e api_graphql\n    api_lab --\u003e api_rest\n    api_lab --\u003e api_system\n    api_lab --\u003e grpc_server\n    api_lab --\u003e api_observability\n\n    %% Bundle dependencies\n    db --\u003e engine\n    db --\u003e store_server\n    db --\u003e store_entity\n    server --\u003e engine\n    server --\u003e store_kv\n    server --\u003e store_entity\n    server --\u003e store_server\n    server --\u003e export_fs\n    server --\u003e export_s3\n    server --\u003e traffic\n    server --\u003e api_core\n    server --\u003e api_graphql\n    server --\u003e api_rest\n    server --\u003e grpc_server\n    server --\u003e api_system\n    server --\u003e api_lab\n    server --\u003e api_observability\n\n    %% Test dependencies\n    test_support --\u003e server\n    test_support --\u003e grpc_client\n    func_tests -.-\u003e test_support\n    perf_tests --\u003e test_support\n```\n\n# Quality requirements for the code\n\nIn order code to be accepted it will fulfill following criteria:\n\n- line coverage with unit tests will be \u003e= 70%\n- all classes and methods will have comprehensible JavaDoc\n- there will be no TODO statements in the code\n- there will be no commented out code\n\n# Standing on giants' shoulders\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n\u003cp\u003eevitaDB uses the following open source projects:\u003c/p\u003e\n\n- [RoaringBitmap](https://github.com/RoaringBitmap/RoaringBitmap) by Daniel Lemire, Richard Statin and others\n- [Kryo](https://github.com/EsotericSoftware/kryo) by Nathan Sweet, Thomas Heigl, Martin Grotzke and others\n- [Netty](https://github.com/netty/netty) and [Armeria](https://github.com/line/armeria) by Trustin Lee, Norman Mauer, Ikhun Um and others\n- [Logback](https://github.com/qos-ch/logback) by Ceki Gülcü and others\n- [Jackson](https://github.com/FasterXML/jackson) by Tatu Saloranta and others\n- [gRPC Java](https://github.com/grpc/grpc-java) by Eric Anderson, Carl Mastrangelo, ZHANG Dapeng, Kun Zhang and others\n- [GraphQL Java](https://github.com/graphql-java/graphql-java) by Andreas Marek, Brad Baker and others\n- [Byte Buddy](https://github.com/raphw/byte-buddy) by Rafael Winterhalter and others\n- [MinIO Java](https://github.com/minio/minio-java) by Anand Babu Periasamy and others\n\n\u003cp\u003eAnd many others. We are grateful for their work.\u003c/p\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/FgForrest/evitaDB/dev/documentation/assets/img/giant_small.png\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n-------------------------------------------------------------------------\n\n[Icons sourced at Icons8.com](https://icons8.com/)\n\n[//]: # (https://icons8.com/icon/set/github/carbon-copy--static--white)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffgforrest%2Fevitadb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffgforrest%2Fevitadb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffgforrest%2Fevitadb/lists"}