Introducing ExEx.rs: an open source directory of Reth ExExes

Introducing ExEx.rs: an open source directory of Reth ExExes

July 23, 2024

Today we are thrilled to introduce exex.rs, an open source directory for Reth Execution Extensions (ExExes). Since WeaveVM depends on ExExes to push data to Arweave, make MEM an L2, and serialize block data, we put this together as a tool to make collecting and developing ExExes easier for ourselves and other teams building on Reth.

What are Reth Execution Extensions?

From the Reth ExEx docs:

Execution Extensions (or ExExes, for short) allow developers to build their own infrastructure that relies on Reth as a base for driving the chain (be it Ethereum or OP Stack) forward.

An Execution Extension is a task that derives its state from changes in Reth’s state. Some examples of such state derivations are rollups, bridges, and indexers. They are called Execution Extensions because the main trigger for them is the execution of new blocks (or reorgs of old blocks) initiated by Reth.

What is exex.rs?

exex.rs is an open source project dedicated to curating a list of ExExes developed by the Reth community, whether by individual devs or larger projects. Think of it as the “chainlist of ExExes”. We believe that curating ExExes in a single UI will accelerate the development of new ExExes by making examples and templates easily discoverable.

Four new ExExes developed by WeaveVM

With today’s launch of exex.rs, we are also introducing a set of ExExes developed by the WeaveVM team.

Some are general purpose, others are WeaveVM-centric, but everything is OSS! Some ExExes are still under development, but we’ve added references in the UI so you can follow the development work.

1. Borsh Binary Serializer (for blocks)

Borsh stands for Binary Object Representation Serializer for Hashing and is a binary serializer developed by the NEAR team. It is designed for security-critical projects, prioritizing consistency, safety, and speed, and comes with a strict specification. The ExEx utilizes Borsh to serialize and deserialize block objects, ensuring a bijective mapping between objects and their binary representations.

Get the code

2. Google BigQuery ETL

The second ExEx we are introducing is a Google BigQuery ETL. With this ExEx, you can index your JSON-serialized blocks on the cloud.

Get the code

3. Arweave Data Bridge

This ExEx is the first data upload pipeline between an Ethereum client (reth) and Arweave, the permanent data storage network. The ExEx uses Irys.xyz to bundle data and send it to Arweave.

Get the code

4. MEM Lambda ExEx (MLExEx)

We publicly released this ExEx last week. It’s an implementation of MEM as a rollup on top of WeaveVM which can be replicated on any reth node/network. MEM Lambda is a SmartWeave lazy execution machine on steroids, allowing the deployment of JavaScript and Rust (and anything that compiles to WASM) on the EVM network! Here’s a simple compatible counter contract in JavaScript:

function source

Check out MEM Lambda ExEx announcement last week

All of these ExExes are listed on exex.rs, check them out and submit your own.

5. More ExExes Coming Soon… 👀

Stay tuned for more exciting and niche ExExes on the way! New ExExes and features for WeaveVM are on the way, and we can’t wait to share them with you. In the meantime, if you are working on an ExEx or know of any ExEx that isn’t listed on exex.rs, please create a PR on GitHub.

Plans to expand exex.rs

In this alpha release, exex.rs features a simple UI with a limited number of ExExes. However, we will be working to enhance the website with the following features:

  • Advanced Filtering: Improved search and filtering options.
  • In-Site Blog: More educational content about ExExes.
  • Individual ExEx Link Preview: Quick previews and profile links for individual ExExes for better insight.

Do you have a feature request? Open a GitHub issue!

⚠️ Disclaimer exex.rs is an open source project licensed under the MIT license. It is not related to or affiliated with the Reth and Paradigm teams in any way.