Files
picoforge/docs/Building.md
2026-01-25 19:12:41 +05:30

3.3 KiB

Prerequisites

Before building, ensure you have the following requirements installed:

  • Node.js - JavaScript/TypeScript runtime (Required for frontend dependencies)
  • Deno - JavaScript/TypeScript runtime (Preferred build tool)
  • Rust - System programming language (1.90+)
  • PC/SC Middleware:
    • Linux: pcscd (usually pre-installed)
    • macOS: Built-in
    • Windows: Built-in

Important

Deno is required to build the application as intended. Node.js is also required because some frontend dependencies rely on it. The npm commands provided in this guide assume Deno is installed and are provided as a fallback.

Building from Source

1. Build the Application

Development Build

With Deno (Recommended):

deno task tauri dev

With npm:

npm run tauri dev

Production Build

With Deno (Recommended):

deno task tauri build

With npm:

npm run tauri build

The compiled binaries will be available in:

  • Linux: src-tauri/target/release/bundle/
  • macOS: src-tauri/target/release/bundle/dmg/
  • Windows: src-tauri/target/release/bundle/

If you must use npm exclusively (without Deno installed), you can modify src-tauri/tauri.conf.json to change the build commands:

  "build": {
    "beforeDevCommand": "npm run dev",
    "devUrl": "http://localhost:1420",
    "beforeBuildCommand": "npm run build",
    "frontendDist": "../build"
  },

After this change, you can use:

npm run build
npm run tauri build

Caution

This deviation from the standard build process is not recommended for contributors. The project is designed to be built using Deno. The package-lock.json and npm commands exist primarily to facilitate packaging for Nix.

Building and Development with Nix

Nix provides developers with a complete and consistent development environment.

You can use Nix to build and develop picoforge painlessly.

1. Install Nix

Follow the Installation Guide and NixOS Wiki to install Nix and enable Flakes.

2. Build & Run

a. with Flakes

You can build and run PicoForge with a single command:

nix run github:librekeys/picoforge

Or simply build it and link to the current directory:

nix build github:librekeys/picoforge

b. without Flakes

Download the package definition:

curl -LO https://raw.githubusercontent.com/librekeys/picoforge/main/package.nix

Run the following command in the directory containing package.nix:

nix-build -E 'with import <nixpkgs> {}; callPackage ./package.nix { }'

The compiled binary will be available at: result/bin/picoforge

3. Develop

You can enter a developement environement with all the required dependencies.

a. with Flakes

nix develop github:librekeys/picoforge

b. without Flakes

You can use the shell.nix file that is at the root of the repository by running:

nix-shell

Then you can build from source and run the application with:

deno task tauri dev