Build from source

Eigin is a monorepo. Install the toolchain for the part you want to work on:

  • iOS app: macOS only. Targets iOS 26, drives xcodebuild.
  • Relay and tooling: anywhere Rust runs, including a Linux container.

Prerequisites

Required for everything:

  • Rust: every recipe runs through the Rust tools/ CLI, so it's needed even for iOS-only work.
  • just: cargo install just, or see the link for other package managers.

For iOS (macOS only):

  • Xcode 17 with the iOS 26 SDK and the iPhone 17 Pro simulator.
  • XcodeGen: brew install xcodegen.
  • SwiftFormat: brew install swiftformat.
  • Then: xcode-select -s /Applications/Xcode.app/Contents/Developer.

Optional:

Setup

From the repo root, after cloning:

  • cp .env.example .env: required; every recipe loads it.
  • just hooks: installs git hooks (one-time).
  • just generate: required; generates the Xcode project and other codegen.

Build and test

From the repo root; arguments are positional. In a Linux container, scope to relay (no xcodebuild).

  • just build [ios|relay]: default all.
  • just test [ios|relay]: default all.
  • just format: auto-format.
  • just run relay: start the relay locally.
  • just --list: see everything.