# Installation

> Install geolith from source or build from the Git repository.

## Prerequisites

- **Rust toolchain** — version 1.99 or later ([rustup.rs](https://rustup.rs))
- **Protocol Buffers compiler** — `protoc` ([installation guide](https://grpc.io/docs/protoc-installation/))
- **Machine** — for a geocoding (`.glx`) build of a country: 8 GB of
  memory and an SSD with about 35 GB free. See
  [Geocoding system requirements](/builder/guides/geocoding-output#system-requirements).

Verify your environment:

```bash
rustc --version
# rustc 1.99.0 or later

protoc --version
# libprotoc 28.0 or later
```

## From Source

Install directly from crates.io:

```bash
cargo install geolith
```

This compiles and installs the `geolith` binary to `~/.cargo/bin/`. Make sure this directory is in your `PATH`.

## Build from source

The source repository is private. Write to contact@geolith.app for access, then build in release mode from the checkout:

```bash
cd geolith
cargo build --release
```

The compiled binary is at `target/release/geolith`. You can copy it to a directory in your `PATH`:

```bash
cp target/release/geolith ~/.cargo/bin/
```

::note
Always use `--release` for production builds. Debug builds are significantly slower for tile generation and should only be used during development.
::

## Verify Installation

```bash
geolith --version
geolith --help
```
