Note rindexer is brand new and only in beta and actively under development, things will change and bugs will exist - if you find any bugs or have any feature requests please open an issue on github.
rindexer is an opensource powerful, high-speed indexing toolset developed in Rust, designed for compatibility with any EVM chain. This tool allows you to index chain events using a simple YAML file, requiring no additional coding. For more advanced needs, the rindexer provides foundations and advanced capabilities to build whatever you want. It's highly extendable, enabling you to construct indexing pipelines with ease and focus exclusively on the logic. rindexer out the box also gives you a GraphQL API to query the data you have indexed instantly.
You can get to the full rindexer documentation.
curl -L https://rindexer.xyz/install.sh | bash
If you’re on Windows, you will need to install and use Git BASH or WSL, as your terminal, since rindexer installation does not support Powershell or Cmd.
Once installed you can run rindexer --help
in your terminal to see all the commands available to you.
rindexer --help
Blazing fast EVM indexing tool built in rust
Usage: rindexer [COMMAND]
Commands:
new Creates a new rindexer no-code project or rust project
start Start various services like indexers, GraphQL APIs or both together
add Add elements such as contracts to the rindexer.yaml file
codegen Generates rust code based on rindexer.yaml or graphql queries
delete Delete data from the postgres database or csv files
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
We have full documentation https://rindexer.xyz/docs/introduction/installation which goes into more detail on how to use rindexer and all the commands available to you.
- Hackathons: spin up a quick indexer to index events for your dApp with an API without any code needed
- Data reporting
- Building advanced indexers
- Building a custom indexer for your project
- Fast prototyping and MVP developments
- Quick proof-of-concept projects
- Enterprise standard indexing solutions for projects
- Much more...
rindexer supports any EVM chain out of the box. If you have a custom chain, you can easily add support for it by adding the chain's RPC URL to the YAML configuration file and defining the chain ID. No code changes are required.
This is the core of rindexer, it contains all the logic for indexing and where most the code lives.
This is the cli for rindexer, it contains all the logic for the cli and is how users interact with rindexer.
This is the express project which leverages postgraphile rindexer GraphQL, we package it into a binary and run it within the rindexer to avoid having to have node/postgraphile installed on the machine running it.
This is the documentation for rindexer, it is built using voc which is an incredible
tool to build documentation. Big shout out to wevm
team for all the work they have done on vocs
, viem
and wagmi
.
This just holds some no-code examples for rindexer which is referenced in the docs or used for new users to see how a project is setup.
To build locally you can just run cargo build
in the root of the project. This will build everything for you
as this is a workspace.
To build for prod you can run make prod_build
this will build everything for you and optimise it for production.
you can run cargo fmt
to format the code, rules have been mapped in the rustfmt.toml
file.
Anyone is welcome to contribute to rindexer, feel free to look over the issues or open a new one if you have any new ideas or bugs you have found.
To release a new rindexer you have to do a few things:
- Checkout release/x.x.x branch depending on the next version number
- Update the changelog in documentation/docs/pages/docs/introduction/changelog.mdx
- Open up the cli folder and go to the Cargo.toml and update the version number
- Push the branch up to GitHub which will queue a build on the CI
- Once the build is successful you can open a PR merging the release branch into master
- Merge will auto deploy the release