neekolas / rindexer

A no-code blazing fast EVM indexer tool built in rust.

Home Page:https://rindexer.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🦀 rindexer 🦀

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.

Install

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.

Use rindexer

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.

What can I use rindexer for?

  • 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...

What networks do you support?

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.

Code structure

core

This is the core of rindexer, it contains all the logic for indexing and where most the code lives.

cli

This is the cli for rindexer, it contains all the logic for the cli and is how users interact with rindexer.

graphql

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.

documentation

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.

examples

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.

Building

Locally

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.

Prod

To build for prod you can run make prod_build this will build everything for you and optimise it for production.

Formatting

you can run cargo fmt to format the code, rules have been mapped in the rustfmt.toml file.

Contributing

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.

Release

To release a new rindexer you have to do a few things:

  1. Checkout release/x.x.x branch depending on the next version number
  2. Update the changelog in documentation/docs/pages/docs/introduction/changelog.mdx
  3. Open up the cli folder and go to the Cargo.toml and update the version number
  4. Push the branch up to GitHub which will queue a build on the CI
  5. Once the build is successful you can open a PR merging the release branch into master
  6. Merge will auto deploy the release

About

A no-code blazing fast EVM indexer tool built in rust.

https://rindexer.xyz

License:MIT License


Languages

Language:Rust 98.7%Language:JavaScript 0.8%Language:Makefile 0.4%Language:Shell 0.1%