From c2477fa8470c80b787d13daae17bc6e0c5f8dc26 Mon Sep 17 00:00:00 2001 From: Jeff Mendoza Date: Tue, 30 Apr 2024 12:32:55 -0700 Subject: [PATCH] Update readme with supported backends. (#1873) Signed-off-by: Jeff Mendoza --- README.md | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 9a1e7cb134..4d486b525d 100644 --- a/README.md +++ b/README.md @@ -71,13 +71,22 @@ if you encounter any errors or bugs with ingestion. ## GraphQL backends -The following are [GraphQL backends](pkg/assembler/backends) that are implemented for GUAC. The backends are categorized into: +GUAC supports multiple [backends](pkg/assembler/backends) behind a software +abstraction layer. The GraphQL API is always the same and clients should be +unaffected by which backend is in use. The backends are categorized into: -1. Supported/Unsupported: Supported backends are those that will be maintained by the project. Unsupported backends are not actively maintained by the project but will accept community contributions. -2. Complete/Incomplete: Complete backends support all mandatory GraphQL APIs. Incomplete backends support a subset of those APIs and may not be feature complete. -3. Optimized: The backend has gone through a level of optimization to help improve performance. +1. Supported/Unsupported: Supported backends are those which the GUAC project + is committed to actively maintain. Unsupported backends are not actively + maintained but will accept community contributions. -The enumerated backends are: +2. Complete/Incomplete: Complete backends support all mandatory GraphQL + APIs. Incomplete backends support a subset of those APIs and may not be + feature complete. + +3. Optimized: The backend has gone through a level of optimization to help + improve performance. + +The two backend that are Supported, Complete, and Optimized are: - [keyvalue (supported, complete, optimized)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/keyvalue): @@ -86,17 +95,20 @@ The enumerated backends are: implementations. We recommend starting with this if you're just starting with GUAC! -- [arangoDB (supported, incomplete, +- [ent (supported, complete + optimized)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/ent) + with [PostgreSQL](https://www.postgresql.org/): a persistent backend based on + [Entity Framework for Go](https://entgo.io/) that can run on various SQL + backends. GUAC only supports ent with PostgreSQL. Other ent backends such as + [MySQL](https://www.mysql.com/) and + [SQLite](https://www.sqlite.org/index.html) are unsupported. + +The other backends are: + +- [arangoDB (unsupported, incomplete, optimized)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/arangodb): a persistent backend based on [ArangoDB](https://arangodb.com/) -- [ent (supported, - incomplete)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/ent): - a persistent backend based on [ent](https://entgo.io/) that can run on - various SQL backends such as [PostgreSQL](https://www.postgresql.org/), - [MySQL](https://www.mysql.com/) and - [SQLite](https://www.sqlite.org/index.html). - - [neo4j/openCypher (unsupported, incomplete)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/neo4j): a persistent backend based on [neo4j](https://neo4j.com/) and