How to Build the denoland/celld Project: Complete Rust Build Guide

Clone the repository and run cargo build --release to compile the celld daemon; the binary appears at target/release/celld.

The denoland/celld project is a self-hosted Rust daemon that runs Cloudflare Workers and Durable Objects on your own infrastructure. Learning how to build the denoland/celld project from source gives you full control over deployment, feature selection, and local development. This guide walks through prerequisites, compilation steps, and advanced configuration options based on the actual source code structure.

Prerequisites for Building celld

Before compiling, ensure your environment meets these requirements:

The project uses Cargo workspaces defined in the top-level [Cargo.toml](https://github.com/denoland/celld/blob/main/Cargo.toml), which coordinates multiple crates including celld, logic, ltx, and examples.

Step-by-Step Build Instructions

1. Clone the Repository

git clone https://github.com/denoland/celld.git
cd celld

2. Compile the Release Binary

cargo build --release

The compilation produces an optimized executable at target/release/celld. This binary contains the core runtime orchestration logic implemented in [crates/celld/lib.rs](https://github.com/denoland/celld/blob/main/crates/celld/lib.rs) and the CLI argument parsing in [crates/celld/startup.rs](https://github.com/denoland/celld/blob/main/crates/celld/startup.rs).

3. Verify the Build

./target/release/celld --help

Successful output displays the complete CLI usage, confirming the binary correctly links all workspace crates including the logic crate (cell lifecycle, scheduling, replication) and ltx crate (log-structured transaction format for durable replication).

4. Start a Local Development Node

./target/release/celld dev

This launches a single-node instance using a local .celld/dev store and binds to http://127.0.0.1:9876. No external bucket configuration is required for local development.

Building and Running Examples

The repository includes demonstration workers showcasing WebSocket handling, KV storage, and D1 database operations. Build and run the WebSocket echo example:

cargo run --example wsecho

Alternatively, start the daemon manually and test against it:


# Terminal 1: Start the daemon

./target/release/celld dev --port 8080

# Terminal 2: Connect with any WebSocket client to ws://127.0.0.1:9876

Example source code resides in [examples/wsecho/index.js](https://github.com/denoland/celld/blob/main/examples/wsecho/index.js).

Advanced Build Configuration

Enable Optional Storage Backends

The celld crate supports conditional compilation for cloud storage providers. Enable features during build:

cargo build --release --features s3,gcs

Available features include:

  • s3 — Amazon S3-compatible object storage
  • gcs — Google Cloud Storage
  • azblob — Azure Blob Storage

Run the Test Suite

cargo test --all

Some integration tests require internet access for cloud storage validation. The test suite covers the runtime orchestration logic in [crates/celld/runtime.rs](https://github.com/denoland/celld/blob/main/crates/celld/runtime.rs) and the transaction format implementation in [crates/ltx/src/ltx.rs](https://github.com/denoland/celld/blob/main/crates/ltx/src/ltx.rs).

Quick Reference: Complete Build Commands


# Clone and enter repository

git clone https://github.com/denoland/celld.git && cd celld

# Build optimized release binary

cargo build --release

# Start local development server

./target/release/celld dev

# Build with cloud storage support

cargo build --release --features s3,gcs,azblob

# Run all tests

cargo test --all

Summary

Frequently Asked Questions

What Rust version is required to build celld?

Rust 1.70 or later is required. Install or update via rustup to ensure compatibility with the workspace dependencies declared in [Cargo.toml](https://github.com/denoland/celld/blob/main/Cargo.toml).

Where is the compiled binary located?

After running cargo build --release, the executable is at target/release/celld relative to the repository root. This path applies to all supported platforms (Linux, macOS, Windows).

Can I build celld without cloud storage features?

Yes. The base build cargo build --release includes only local storage support. Cloud backends are opt-in via feature flags—add --features s3, gcs, or azblob only when needed.

How do I run the example workers?

Use cargo run --example <name> or build manually with esbuild as noted in the README. The WebSocket echo demo (cargo run --example wsecho) provides the fastest validation that your build functions correctly.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →