A nix-shell for developing with Rust on Xtensa+RISCV ESP32 targets
  • Nix 75.5%
  • Just 11.6%
  • Shell 8.7%
  • Rust 4.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Leigh Oliver 44e9377693
Some checks failed
test `nix develop` / develop-macos (push) Has been cancelled
test `nix develop` / develop-aarch64-linux (push) Has been cancelled
test `nix develop` / develop-x86_64-linux (push) Has been cancelled
test `nix-shell` / shell-macos (push) Has been cancelled
test `nix-shell` / shell-aarch64-linux (push) Has been cancelled
test `nix-shell` / shell-x86_64-linux (push) Has been cancelled
QEMU esp32c3 test / qemu-esp32c3-macos-build (push) Has been cancelled
QEMU esp32c3 test / qemu-esp32c3-linux (push) Has been cancelled
QEMU esp32s3 test / qemu-esp32s3-macos-build (push) Has been cancelled
QEMU esp32s3 test / qemu-esp32s3-linux (push) Has been cancelled
Simplify QEMU job for macos as it seems to get stuck
2026-08-02 07:49:43 +10:00
.github/workflows Simplify QEMU job for macos as it seems to get stuck 2026-08-02 07:48:58 +10:00
esp-rs Disable ELF patching and stripping only for Darwin (#28) 2026-08-01 13:27:13 +10:00
qemu-test Mega squashed commit. Added qemu-test crate and GHAs. 2025-10-12 20:37:29 +11:00
utils Added missing GDB versions for aarch64-apple-darwin 2025-10-12 16:16:25 +11:00
.gitignore Use flake-parts to create multi-arch flakes 2025-10-12 11:15:18 +11:00
flake.lock Use flake-parts to create multi-arch flakes 2025-10-12 11:15:18 +11:00
flake.nix Disable ELF patching and stripping only for Darwin (#28) 2026-08-01 13:27:13 +10:00
LICENSE Initial commit 2024-02-24 00:52:50 +11:00
package.nix Disable ELF patching and stripping only for Darwin (#28) 2026-08-01 13:27:13 +10:00
README.md Update README.md 2026-08-01 13:29:43 +10:00
shell.nix Disable ELF patching and stripping only for Darwin (#28) 2026-08-01 13:27:13 +10:00

esp-rs-nix

Project goals:

Project status: works on my machine!

Tip

Now supports x86_64-linux,aarch64-linux, and macOS hosts!

Getting started

For nix-shell use, please refer to shell.nix.
For nix develop use, please refer to flake.nix and package.nix.

Version selection

A specific version of the rust toolchain can used with either the shell.nix, or package.nix files.
Below is a table of the currently supported versions.

rust-build (rustc)
1.93.0.0
1.92.0.0
1.91.1.0
1.90.0.0
1.89.0.0
1.88.0.0
1.87.0.0
1.86.0.0
crosstool-NG (gcc)
15.2.0_20251204
15.2.0_20250920
15.1.0_20250607
binutils (gdb)
16.3_20250913
16.2_20250324

New versions can be added by updating the ./esp-rs/versions.nix file with the correct file hashes.

why?

The recommended installation method using the espup tool didn't work for me.

notes

  • This is for development of no_std, esp-hal-based applications only. NOT for use with esp-hal-idf.
  • This is hard-coded to download binaries for x86_64 only, at the moment.
  • PRs welcome!