DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗nixchip is a Nix flake for open hardware development. Hardware packages live
under pkgs/; general development tools such as Python, Node.js, Git, Make, and
shell linters come directly from nixpkgs in the dev shells.
nix develop github:helcel-net/nixchip # full hardware toolbox
nix develop github:helcel-net/nixchip#simulation # simulators + waveform viewers
nix develop github:helcel-net/nixchip#fpga # synthesis + place-and-route
nix develop github:helcel-net/nixchip#asic # physical design + analog + formal
nix develop github:helcel-net/nixchip#ai # claude-code + codex + opencode
nix develop github:helcel-net/nixchip#versions # side-by-side verilator_3/4/5, systemc_2/3, etc.
Every shell exports ${PKGNAME}_HOME, ${PKGNAME}_BIN, ${PKGNAME}_LIB, and
${PKGNAME}_INCLUDE for every individual package in the collection, regardless
of which packages are in packages =. See Environment variables.
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixchip.url = "github:helcel-net/nixchip";
};
outputs =
{ nixpkgs, nixchip, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [ nixchip.overlays.default ];
};
in
{
devShells.${system}.default = pkgs.mkShellNoCC {
packages = [
pkgs.nixchip.hardware-tools
pkgs.nixchip.verilator_4
];
shellHook = nixchip.lib.mkNixchipVarsHook pkgs.nixchip;
};
};
}
The overlay exports packages under both pkgs.nixchip.* and top-level package
names such as pkgs.verilator_4.
CI pushes every build to the nixchip0 Cachix cache, declared in this flake's
nixConfig — running any nix command with --accept-flake-config (or
accept-flake-config = true in nix.conf) substitutes it automatically.
To actually get cache hits, consume nixchip's packages built against nixchip's own nixpkgs pin. Overriding it rewrites every derivation hash and forces full source rebuilds:
# Cache-friendly: share nixchip's pin.
inputs.nixchip.url = "github:helcel-net/nixchip";
inputs.nixpkgs.follows = "nixchip/nixpkgs";
# Cache-hostile: every nixchip package rebuilds from source.
# inputs.nixchip.inputs.nixpkgs.follows = "nixpkgs";
If you must keep your own nixpkgs pin, use a second, un-overridden nixchip input for the heavy EDA tools and your own pin for everything else.
For non-hardware tooling, use nixpkgs directly:
pkgs.mkShellNoCC {
packages = [
pkgs.nixchip.hardware-tools
pkgs.python3
pkgs.nodejs
pkgs.shellcheck
];
}
nix-shellCreate a shell.nix:
let
nixchip = builtins.getFlake "github:helcel-net/nixchip";
system = builtins.currentSystem;
pkgs = nixchip.legacyPackages.${system};
in
pkgs.mkShellNoCC {
packages = [
pkgs.nixchip.hardware-tools
];
shellHook = nixchip.lib.mkNixchipVarsHook pkgs.nixchip;
}
Then run:
nix-shell --experimental-features 'nix-command flakes'
Every dev shell (including downstream shells that call mkNixchipVarsHook)
exports four variables per package:
| Variable | Value |
|---|---|
PKGNAME_HOME | Nix store path (package root) |
PKGNAME_BIN | $PKGNAME_HOME/bin |
PKGNAME_LIB | $PKGNAME_HOME/lib |
PKGNAME_INCLUDE | $PKGNAME_HOME/include |
Package name to env prefix: hyphens become underscores, all uppercase.
Examples:
verilator_4 → VERILATOR_4_HOME / VERILATOR_4_BIN / VERILATOR_4_LIB / VERILATOR_4_INCLUDE
systemc_2 → SYSTEMC_2_HOME / SYSTEMC_2_BIN / SYSTEMC_2_LIB / SYSTEMC_2_INCLUDE
sv-lang_9 → SV_LANG_9_HOME / SV_LANG_9_BIN / ...
yosys-full_0 → YOSYS_FULL_0_HOME / YOSYS_FULL_0_BIN / ...
gem5 → GEM5_HOME / ...
qucs-s_25 → QUCS_S_25_HOME / ...
Tool-group bundles (*-tools) and Python-only packages (cocotb, edalize)
are excluded from the export because they are meant to be used differently.
The AI agents (codex, opencode) are excluded too: codex reads CODEX_HOME
as its writable config directory.
mkNixchipVarsHook for downstream flakesnixchip.lib.mkNixchipVarsHook takes a pkgs.nixchip attribute set and
returns a shell hook string. Wire it in as shown in the flake input example
above. The hook is evaluated at evaluation time — no runtime lookups occur.
This is the beginning of the README. Read the rest at the original. Read the full README ↗