Skip to content

Commit

Permalink
Update readme with supported backends. (#1873)
Browse files Browse the repository at this point in the history
Signed-off-by: Jeff Mendoza <jlm@jlm.name>
  • Loading branch information
jeffmendoza committed Apr 30, 2024
1 parent fd69617 commit c2477fa
Showing 1 changed file with 25 additions and 13 deletions.
38 changes: 25 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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
Expand Down

0 comments on commit c2477fa

Please sign in to comment.