Skip to content
This repository has been archived by the owner on Oct 25, 2024. It is now read-only.

Commit

Permalink
docs: update feature matrix (#1436)
Browse files Browse the repository at this point in the history
* docs: update feature matrix

* updates

* deekerno feedback
  • Loading branch information
ra0x3 authored Nov 1, 2023
1 parent e67fe0d commit fce8ce5
Showing 1 changed file with 28 additions and 27 deletions.
55 changes: 28 additions & 27 deletions docs/src/getting-started/how-it-compares.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,43 @@
# How it Compares

Since many users may be familiar with indexing by using a solution like The Graph, it may be helpful to provide a comparison between it and the Fuel indexer. Generally, the biggest conceptual differences between the two are as follows:
Since many users may be familiar with indexing by using a solution like The Graph, it may be helpful to provide a comparison between The Graph and the Fuel indexer.

- The Fuel indexer does not support publishing indexers to decentralized networks. That being said, the Fuel indexer is developed with the intention of allowing anyone to run an instance and host whatever indexers they want.
- Contracts on the Fuel network can be indexed without the need to add additional events. Whether a user wanted to index information from the very start of a contract or a recent block, the process is the same: define the schema and manifest, write custom handler logic, and deploy to an indexer service.
## Differential Value

Legend:
Generally, the biggest conceptual differences between Fuel's indexer service and other indexer services (such as The Graph) are indexing speed, general ease of use, and indexable data types.

### Speed of indexing

Using Fuel's indexers, users can index about 30 blocks per second on a standard Macbook Pro on an M1 chip. This type of indexing speed is a boon to smart contract authors who need to iterate quickly while building dApps.

### General usability

- 🟩 : Functionally complete
- 🟨 : Partially complete
- 🟥 : Planned but incomplete
- ⛔ : Not planned
Unlike other indexing services, users can use the forc index CLI tool to create, deploy, update, re-deploy, remove, and check the status of their indexers. The ability to completely manage, maintain, and improve remote indexers without having to open any files, or edit any source code completely sets Fuel's indexer apart from other services in the space.

### What you can index

The Fuel indexer is tailored for compatibility with the FuelVM. This means that instead of being limited to the primitives of the Etherem virtual machine (EVM), users of the Fuel indexer gain access to a much richer set of indexable abstractions provided by the FuelVM (e.g. predicates, transaction receipts, etc).

Legend:

<!-- todo: continue this from https://www.notion.so/fuellabs/Indexer-Feature-Matrix-24d654f1bc3d411e8371d13db90fe237 -->
- 🟩 : Supported
- 🟥 : Not supported
- 🟨 : Planned

| Feature | The Graph | Fuel Indexer | Notes |
|:-:|:-:|:-:|:-:|
| Hosted Indexers | 🟩 | 🟩 | |
| WASM Execution | 🟩 | 🟩 | |
| Native Execution | 🟥 | 🟩 | |
| Handlers | 🟩 | 🟩 | see [Indexing Fuel Types](../indexing-fuel-types/index.md) and [Indexing Custom Types](../indexing-custom-types/index.md)|
| Updateable Schemas | 🟩 | 🟩 | |
| API Authentication | 🟩 | 🟩 | |
| Starting Block Configuration | 🟩 | 🟩 | |
| Grafted Indexes | 🟩 | 🟥 | |
| Index Ownership Transfer | 🟩 | 🟥 | |
| Unit Testing Framework | 🟩 | 🟥 | Users are able to use `cargo test` |
| Querying: Sorting | 🟩 | 🟩 | |
| Querying: Pagination | 🟩 | 🟩 | |
| Querying: Filtering | 🟩 | 🟩 | |
| Querying: Time Travel | 🟩 | 🟥 | |
| Querying: Fulltext Search | 🟩 | 🟥 | |
| Querying: GraphQL Validation Spec | 🟩 | 🟨 | |
| Schema: Enums | 🟩 | 🟩 | |
| Schema: One-to-one relationships | 🟩 | 🟩 | |
| Schema: One-to-many relationships| 🟩 | 🟩 | |
| Schema: Many-to-many relationships | 🟩 | 🟩 | |
| Schema: Reverse Lookup | 🟩 | 🟥 | |
| AssemblyScript Support | 🟩 || |
| Admin Portal UI | 🟩 || |
| Decentralized Hosting | 🟩 || |
| Native Unit Testing Framework | 🟩 | 🟥 | Users are able to use `cargo test` |
| GraphQL: Sorting, Pagination, Filtering | 🟩 | 🟩 | |
| Schema: Enum, Object, and Union types | 🟩 | 🟩 | |
| Schema: One-to-one, one-to-many, many-to-many relationships | 🟩 | 🟩 | |
| AssemblyScript Support | 🟩 | 🟥 | |
| Admin Portal UI | 🟩 | 🟥 | |
| Stop, Remove, Re-deploy indexers without smart contract changes | 🟥 | 🟩 | |
| Update & redeploy indexers with 0 downtime | 🟥 | 🟩 | |
| Use third party dependencies in your indexers | 🟥 | 🟩 | |

0 comments on commit fce8ce5

Please sign in to comment.