# ArbReth > A modular, Rust-native execution client for Arbitrum ## Docs - [API Reference](/docs/api-reference): Full Rust API documentation generated by `cargo doc`. Each crate is documented with its public types, traits, and functions. - [ArbOS State Machine](/docs/arbos): ArbOS is the operating system layer that runs on top of the EVM. It manages L1/L2 pricing, retryable tickets, cross-chain messaging, and protocol-level state - all stored in the state trie under a dedicated system address. - [Architecture](/docs/architecture): ArbReth is organized as a Cargo workspace of focused, independently consumable crates. The architecture follows a clear layering: node infrastructure at the top, execution in the middle, and core primitives at the bottom. - [Configuration](/docs/configuration): When running with Docker Compose, configuration is done through the `.env` file. Copy `.env.example` and edit: - [Contributing](/docs/contributing): **Requirements:** Rust 1.93+, clang, cmake - [Installation](/docs/installation): The simplest way to run ArbReth is with Docker Compose, which starts both the execution client and the Nitro consensus node. - [Introduction](/docs/introduction): ArbReth is a ground-up Rust implementation of [Arbitrum Nitro](https://github.com/OffchainLabs/nitro)'s execution layer. It replaces Nitro's embedded Geth fork with [reth](https://github.com/paradigmxyz/reth), delivering the same state-transition logic through a modular crate architecture. - [JSON-RPC API](/docs/json-rpc): ArbReth serves three RPC namespaces: the standard `eth_` namespace (with Arbitrum extensions), the `arb_` namespace for Arbitrum-specific queries, and the `nitroexecution_` namespace for consensus-layer communication. - [Precompiles](/docs/precompiles): Arbitrum provides system contracts at fixed addresses that expose ArbOS functionality to smart contracts. These precompiles are callable from Solidity like any other contract. - [Stylus WASM Runtime](/docs/stylus): Stylus allows smart contracts written in Rust, C, and C++ to run on Arbitrum as compiled WASM programs alongside standard EVM contracts. ArbReth implements the full Stylus execution pipeline. - [Transaction Types](/docs/transaction-types): Arbitrum extends the EIP-2718 typed transaction envelope with six custom transaction types. These are used for L1-to-L2 messaging, internal protocol operations, and retryable tickets.