{"id":50461225,"url":"https://github.com/stal-ix/ix","last_synced_at":"2026-06-01T04:32:15.768Z","repository":{"id":37763326,"uuid":"496432647","full_name":"stal-ix/ix","owner":"stal-ix","description":"ix package manager, statically build packages, for darwin/linux, with clang","archived":false,"fork":false,"pushed_at":"2026-04-26T01:47:19.000Z","size":33349,"stargazers_count":188,"open_issues_count":3,"forks_count":21,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-26T03:32:35.055Z","etag":null,"topics":["bootstrap","distribution","hermetcity","linking","reproducibility","static"],"latest_commit_sha":null,"homepage":"https://stal-ix.github.io/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stal-ix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-26T00:38:32.000Z","updated_at":"2026-04-26T01:47:30.000Z","dependencies_parsed_at":"2024-04-15T20:39:18.953Z","dependency_job_id":"ecce4d24-3416-4d88-b42c-41e1aadd57e6","html_url":"https://github.com/stal-ix/ix","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/stal-ix/ix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stal-ix%2Fix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stal-ix%2Fix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stal-ix%2Fix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stal-ix%2Fix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stal-ix","download_url":"https://codeload.github.com/stal-ix/ix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stal-ix%2Fix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33760645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","distribution","hermetcity","linking","reproducibility","static"],"created_at":"2026-06-01T04:32:11.577Z","updated_at":"2026-06-01T04:32:15.760Z","avatar_url":"https://github.com/stal-ix.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/stal-ix/stal-ix.github.io/blob/main/images/ixpm_02.png\" width=\"250px\" height=\"94px\"\u003e\n\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/stal-ix/stal-ix.github.io/blob/main/images/ixpm_01.png\" width=\"250px\" height=\"94px\"\u003e\n\u003cimg alt=\"logo\" src=\"https://raw.githubusercontent.com/stal-ix/stal-ix.github.io/main/images/ixpm_01.png\" width=\"250px\" height=\"94px\"\u003e\n\u003c/picture\u003e\n\u003ca href=\"https://repology.org/repository/stalix\"\u003e\n    \u003cimg src=\"https://repology.org/badge/repository-big/stalix.svg\" alt=\"Repository status\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n**This repository is a stable branch. All development activities are carried out on https://github.com/pg83/ix.\u003cbr\u003e \nKindly submit all PRs there.**\n\n# stal/ix\n\n**stal/ix** is a Linux distribution (**Stalix**) built around a custom, source-based package/build system (**IX**).\n\nThis repository documents and hosts the tooling and package set used to build a complete OS image, while the core idea is the same everywhere:\n\n- treat “the OS” as a **content-addressed store** of build artifacts  \n- keep builds **deterministic and debuggable**\n- make it possible to build large systems without turning the build language into a Turing-complete nightmare\n- minimize “runtime surprises” (dynamic loader, random `.so`/plugins, SUID binaries, etc.)\n\n\u003e If you are looking for “another distro”, Stalix is closer to “a laboratory for building a *correct* Linux” than a mainstream desktop distribution.\n\n## Projects\n\n### 1) IX — the package manager / build system\n\nIX is a package manager in the “Nix/Guix family”, but with different trade-offs:\n\n- **Content-addressed store** (think `/ix/store/...`) with immutable build outputs.\n- **Source-first**: packages are built from sources using explicit recipes.\n- **Non–Turing-complete(ish) package definitions**: the system is designed so that describing packages doesn’t turn dependency resolution/build planning into an unbounded computation.\n- **Templated package recipes**: packages are generated from templates (Jinja-style), which makes “do the same, but with a tiny change” actually practical.\n- **Hermetic builds / isolation**: build steps are intended to run in an isolated environment (no “oops, my build tool touched `/bin` on the host”).\n- **Cross-target support** (work in progress, but used in practice): build artifacts can target other OS/ABIs.\n- **Aggressive focus on static linking** and reproducibility where it makes sense for the system.\n\nTypical concepts you will see:\n\n- `/ix/store/\u003chash\u003e-\u003cpkg\u003e` — immutable outputs\n- “realms” / “system realm” — an assembled environment composed from store entries\n- wrappers around toolchains/linkers to enforce policies and reduce per-package boilerplate\n\n### 2) Stalix — a distro built on IX\n\nStalix is “what happens when IX builds the whole OS”.\n\nCore ideas:\n\n- **No systemd**.\n- **No SUID binaries by default** (security model is built to avoid the classic “SUID + plugins = boom” story).\n- **A minimal, explicit userspace**: fewer implicit runtime dependencies, fewer “magic” daemons.\n- A strong preference for **static binaries** and **explicit composition** over “shared library soup”.\n- A “build it like you mean it” approach: toolchain updates, graphics stack experiments, hermetic build fixes, etc. are treated as first-class engineering work.\n\nStalix is also published to external indexes (e.g. Repology) to make package freshness visible and to enable automated update workflows.\n\n## Why does this exist?\n\nBecause the typical Linux distro model tends to accumulate properties that are hard to reason about:\n\n- dynamic linking everywhere (ABI constraints, loader complexity, startup overhead, dependency fragility)\n- plugins loaded from the filesystem at runtime\n- build systems that assume `host == target`\n- “supply chain by default” (random prebuilt blobs inside source trees)\n- implicit host environment leakage into builds\n\nIX/Stalix is an attempt to push in the opposite direction: **make the system boring and explicit**.\n\n## Repository layout (high level)\n\nThis repo typically contains:\n\n- the IX entrypoint and supporting tools (executors, wrappers, helpers)\n- the package set (“ports tree”)\n- distro assembly logic (images/rootfs, init, base system composition)\n- CI helpers and metadata dumps (e.g. for Repology)\n\nExact layout evolves; use the top-level directories as the source of truth.\n\n## Getting started\n\n### Build a package\n\nExamples from real usage:\n\n```sh\n# Build a single package\n./ix build bin/b64\n\n# Cross-target build example\n./ix build bin/b64 --target=freebsd-x86_64\n```\n\n### Mutate / assemble the system realm\n\n```sh\n# Apply system composition changes (think “assemble/refresh the system realm”)\n./ix mut system\n```\n\n### Run a tool from the store (convenience)\n\n```sh\n# Resolve a binary name to the package and run it\n./ix run zstd --help\n```\n\n\u003e Notes:\n\u003e - The exact CLI and the available targets/features depend on the current state of the repo.\n\u003e - This project is intentionally not “one command to install on any machine”. It’s a build system and a distro lab.\n\n## Security model (high-level)\n\nStalix tries to avoid entire classes of problems instead of “patching around them”:\n\n- avoid SUID binaries where possible\n- avoid loading untrusted native code at runtime (classic .so plugin model)\n- prefer hermetic builds and explicit inputs\n- make “what is in the system” auditable via the store and build graph\n\nThis does not magically make the system secure. It’s a set of engineering choices that try to reduce attack surface and reduce complexity.\n\n## Contributing\n\nContributions are welcome, especially in areas that scale poorly for a single maintainer:\n\n- package updates and fixes\n- build isolation fixes (removing implicit host dependencies)\n- bootstrap work (reducing circular toolchain requirements)\n- CI improvements and reproducibility checks\n- documentation (yes, really)\n\nIf you send PRs:\n\n- keep changes minimal and scoped\n- include rationale (what broke, why this fixes it)\n- prefer deterministic fixes over “works on my machine”\n\n## Status / disclaimer\nThis is an active engineering project, not a polished consumer OS.\n\nExpect:\n\n- breakage during large toolchain transitions\n- experiments (graphics stack, init, build isolation)\n- non-mainstream decisions (by design)\n\nIf you want a stable, boring workstation today — use a mainstream distro.\nIf you want to explore how a “correct-by-construction-ish” Linux could be built — welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstal-ix%2Fix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstal-ix%2Fix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstal-ix%2Fix/lists"}