f648349e82
* Diatixisify! * First pass at Typedoc generation for TS SDK * Remove overview pages * Fix typos and remove codebase references from docs Fix typos across network and developer docs: Quorum, available, cryptosystem, transaction, proportional, Standalone. Remove TODO placeholder from dVPN protocol page. Strip GitHub source links from network docs to decouple documentation from repo structure. * Expand thin landing pages across network and developer docs - Add intro content to network overview, infrastructure, and reference landing pages - Expand developer index with "where to start" guide - Add usage instructions and explanations to all five TS playground pages - Expand WebSocket client page with setup and message format examples * Restructure Rust SDK developer docs - Delete redundant mixnet example, message-helpers, and message-types subpages - Delete client-pool architecture and example subpages (content folded into landing) - Delete tcpproxy troubleshooting (folded into landing page) - Add deprecation notices to TcpProxy pages, pointing to Stream module - Add stream module docs: landing page, architecture, tutorial, and 4 example pages - Add mixnet and client-pool tutorials - Add SDK tour page - Update navigation and landing pages with docs.rs links * Restructure TS SDK developer docs - Merge overview, installation, and getting started into TS SDK landing page - Fold FAQ content into bundling/troubleshooting section - Delete redundant overview, installation, start, and FAQ pages - Update internal links in browsers.mdx and native.mdx - Update navigation and example page imports * Flatten and expand APIs section - Collapse nested API subpages into single pages with inline Redoc embeds - Rewrite introduction as landing page with decision table - Add endpoint categories, quick curl examples to each API page - Mark Explorer API as deprecated - Move NS API deployment guide to operators/performance-and-testing - Fix dangling /apis/nym-api/mainnet link in network-components - Remove sandbox endpoints from all API pages * Add redirects for moved and deleted pages - Add 25 redirects covering TS SDK, Rust SDK, APIs, and network sections - Fix dangling /developers/typescript/start link in operators changelog * Replace individual example doc pages with GitHub-linked tables, expand tutorials - replace individual example doc pages with GitHub-linked tables - expand mixnet tutorial with persistent identity and split_sender sections - add tcpproxy tutorial - rename "API Reference" to "TypeDoc Reference" in TS SDK sidebar - rename "Misc" to "Extras" in developer sidebar, move VPN CLI up - remove echo server from tools - update message-queue callout to reference actual modules - fix mixnet/examples redirect collision * Add SEO frontmatter, validate encryption standards, clean up URLs - add title/description/schemaType/section/lastUpdated frontmatter to 48 pages across developers, network, and APIs sections - remove network/.archive/ directory (compare against develop instead) - update nymtech.net → nym.com for website/blog links (keep infra URLs) - add native proxy "in progress" callout for Rust/C/Go * API-scraper update (#6598) * read nodes and locations * update python-prebuild.sh * Address PR #6494 review feedback - Use "mode" consistently instead of "role" on nym-nodes page - Replace "staking" with "bonding" for NYM token collateral - Wire up auto-scraped node counts via TimeNow + nodes-count.json - Fix broken licensing images: download CC icons locally, replace inline HTML - Fix 9 stale redirects pointing through deleted /network/architecture path * Fix linkcheck errors - Fix stale cross-links: /network/concepts/ → /network/mixnet-mode/ - Replace README.md references with globals.md in TypeDoc output - Add entryFileName: globals to typedoc.json configs to prevent recurrence * Fix remaining stale /network/architecture links - zk-nym-overview: architecture/nyx#nym-api → /network/infrastructure/nyx#nym-api - setup: network/architecture → /network/overview * Remove accidentally re-included architecture.md file from rebase * Standardize tutorials, document examples, add llms.txt, apply tone fixes - Expand Rust SDK tutorials with step-by-step structure; document all SDK examples across mixnet, client-pool, and tcpproxy pages - Add llms.txt generation script, wire into build and CI workflows - Apply tone/style fixes: deduplicate callouts, vary sentence structure, standardize voice consistency across changed pages * Consolidate redundant network overview docs * Trim dev docs: git-first imports, stream notice, collapse TcpProxy * Update tutorial * Refresh auto-generated API and command outputs * Update network section docs * Update developer and API docs: reusable components, stream protocol, conventions, tutorial fixes * Fix Rust SDK tutorial bugs: setup_env, port conflicts, logging, open_stream race condition * Update stream.mdx * Remove docs.rs link from Stream overview for the moment * add llms.txt and llms-full.txt note to readme --------- Co-authored-by: import this <97586125+serinko@users.noreply.github.com>
90 lines
3.8 KiB
Plaintext
90 lines
3.8 KiB
Plaintext
---
|
|
title: "Building Nym from Source: Linux, macOS & Windows"
|
|
description: "How to build Nym platform binaries from source code. Covers dependencies for Debian, Arch, macOS, and Windows. Requires Rust toolchain and Git."
|
|
schemaType: "HowTo"
|
|
section: "Operators"
|
|
lastUpdated: "2026-02-01"
|
|
breadcrumbLabel: "Building from Source"
|
|
---
|
|
|
|
import { Callout } from 'nextra/components';
|
|
import { VarInfo } from 'components/variable-info.tsx';
|
|
|
|
# Building from Source
|
|
|
|
> Nym runs on Mac OS X, Linux, and Windows. All nodes **except the Desktop Wallet and NymConnect** on Windows should be considered experimental - it works fine if you're an app developer but isn't recommended for running nodes.
|
|
|
|
## Building Nym
|
|
|
|
Nym has two main codebases:
|
|
|
|
- the [Nym platform](https://github.com/nymtech/nym), written in Rust. This contains all of our code _except_ for the validators.
|
|
- the [Nym validators](https://github.com/nymtech/nyxd), written in Go.
|
|
|
|
> This page details how to build the main Nym platform code. **If you want to build and run a validator, [go here](../nodes/validator-setup) instead.**
|
|
|
|
## Prerequisites
|
|
|
|
- Debian/Ubuntu: `pkg-config`, `build-essential`, `libssl-dev`, `curl`, `jq`, `git`
|
|
|
|
```sh
|
|
apt install pkg-config build-essential libssl-dev curl jq git
|
|
```
|
|
|
|
- Arch/Manjaro: `base-devel`
|
|
|
|
```sh
|
|
pacman -S base-devel
|
|
```
|
|
|
|
- Mac OS X: `pkg-config` , `brew`, `openss1`, `protobuf`, `curl`, `git`
|
|
Running the following the script installs Homebrew and the above dependencies:
|
|
|
|
```sh
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
```
|
|
|
|
- `Rust & cargo >= 1.80`
|
|
|
|
We recommend using the [Rust shell script installer](https://www.rust-lang.org/tools/install). Installing cargo from your package manager (e.g. `apt`) is not recommended as the packaged versions are usually too old.
|
|
|
|
If you really don't want to use the shell script installer, the [Rust installation docs](https://forge.rust-lang.org/infra/other-installation-methods.html) contain instructions for many platforms.
|
|
|
|
## Download and Build Nym Binaries
|
|
|
|
<Callout type="warning" emoji="⚠️">
|
|
You cannot build from GitHub's .zip or .tar.gz archive files on the releases page - the Nym build scripts automatically include the current git commit hash in the built binary during compilation, so the build will fail if you use the archive code (which isn't a Git repository). Check the code out from github using `git clone` instead.
|
|
</Callout>
|
|
|
|
The following commands will compile binaries into the `nym/target/release` directory:
|
|
|
|
```sh
|
|
rustup update
|
|
git clone https://github.com/nymtech/nym.git
|
|
cd nym
|
|
|
|
git reset --hard # in case you made any changes on your branch
|
|
git pull # in case you've checked it out before
|
|
|
|
git checkout master # master branch has the latest release version: `develop` will most likely be incompatible with deployed public networks
|
|
|
|
cargo build --release # build your binaries with **mainnet** configuration
|
|
```
|
|
|
|
Quite a bit of stuff gets built. The key working parts are:
|
|
|
|
* [Nym Node](../nodes/nym-node): `nym-node`
|
|
* [Validator](../nodes/validator-setup.mdx)
|
|
* [websocket client](../../developers/clients/websocket): `nym-client`
|
|
* [socks5 client](../../developers/clients/socks5): `nym-socks5-client`
|
|
* [webassembly client](../../developers/clients/webassembly-client): `webassembly-client`
|
|
* [nym-cli tool](../../developers/tools/nym-cli): `nym-cli`
|
|
* [nym-api](../nodes/validator-setup/nym-api.mdx): `nym-api`
|
|
* [nymvisor](../nodes/maintenance/nymvisor-upgrade.mdx): `nymvisor`
|
|
|
|
{/*
|
|
The repository also contains Typescript applications which aren't built in this process. These can be built by following the instructions on their respective docs pages.
|
|
* [Nym Wallet](https://nym.com/docs/wallet/desktop-wallet.html)
|
|
* [Network Explorer UI](https://nymtech.net/docs/explorers/mixnet-explorer.html)
|
|
*/}
|