haskell.nix VS nixpkgs

Compare haskell.nix vs nixpkgs and see what are their differences.


Alternative Haskell Infrastructure for Nixpkgs (by input-output-hk)


Nix Packages collection (by NixOS)
Our great sponsors
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • Scout APM - A developer's best friend. Try free for 14-days
  • SaaSHub - Software Alternatives and Reviews
haskell.nix nixpkgs
6 331
357 8,238
1.7% 4.1%
9.6 10.0
7 days ago about 7 hours ago
Nix Nix
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of haskell.nix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-09.


Posts with mentions or reviews of nixpkgs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-07.
  • “LLVM-Libc” C Standard Library
    10 projects | news.ycombinator.com | 7 Dec 2021
  • Coreutils Rewritten in Rust
    8 projects | news.ycombinator.com | 5 Dec 2021
    Nixpkgs has a PR for replacing the build environment of packages with uutils-coreutils[0]. From testing by building various packages over a dozen bugs were reported upstream, but a lot of software does build successfully with uutils[1][2], including chromium, vlc, nix, rustc, emacs, vim, uutils itself etc.

    It's an interesting experiment to replace such a fundamental dependency with a rewrite. A lot of the build failures are due to uutils not implementing GNU extensions, some of which can get pretty involved.

    [0] https://github.com/NixOS/nixpkgs/pull/116274

    [1] https://github.com/NixOS/nixpkgs/pull/116274#issuecomment-85...

    [2] https://github.com/NixOS/nixpkgs/pull/116274#issuecomment-86...

  • Runtime dependencies for a bash script
    3 projects | reddit.com/r/NixOS | 2 Dec 2021
    The best documentation is the actual source code with its comments, so have a look here: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/trivial-builders.nix
  • Tvix: We Are Rewriting Nix
    6 projects | news.ycombinator.com | 1 Dec 2021
    As sibling comments mention, this would struggle with edge-cases, and require too much buy-in from packagers.

    A less ambitious approach would be creating/extending a static analyser/linter for Nix (there are already a few out there). This could nudge packagers towards certain styles, which language implementations could optimise for.

    For example, an interpreter could have multiple implementations of the attrset interface (key/value mappings) with different performance characteristics, using some default for literals like '{ foo = "bar"; }' and a specialised version for known use-cases like nixpkgs.lib.nameValuePair ( https://github.com/NixOS/nixpkgs/blob/e9e53499b26ad98ac97f97... ) (mentioned in a sibling)

    Linters could then spot when such functions are appropriate, e.g.

        Found literal name/value pair on line 123:
  • How should one get started with Nix and NixOS?
    3 projects | reddit.com/r/NixOS | 1 Dec 2021
    Cross-posting from https://www.reddit.com/r/NixOS/comments/r4jj6o/comment/hmkk4q2/: - Read my small guide about nix language https://github.com/rofrol/nix-for-javascript-developers - Use sourcegraph for searching. Github isn't too good for that. Example https://sourcegraph.com/search?q=context:global+file:%5C.nix%24+minecraft&patternType=literal - Read/ask questions here or at http://discourse.nixos.org/ - search for issues here https://github.com/NixOS/nixpkgs/issues - At the beginning try to use as little as possible additional abstraction layers like home-manager, devos etc. - You may look at my config https://github.com/rofrol/nixos-config there are other documentation sources listed at https://nixos.org/learn.html Be aware that those sources maybe outdated.
  • Will Nix Overtake Docker
    16 projects | news.ycombinator.com | 29 Nov 2021
    which would likely be copy-pasted from the project README. The yml file specifies version numbers for dependencies. The SAT solver is deterministic. For other languages like C maybe the project didn't specify dependency version. So you need to figure them out when you first get a successful build, then specify their versions in apt. You can specify version numbers in the apt-get install line.

    Yes, this is reproducible. Definitely good enough for most business use cases. When I say reproducible I do not mean ivory tower math proof reproducible. I just mean that the code will run on the relevant machines they are targeting. As I wrote in my initial comment. And as I defined at the top of this comment.

    Also Nix provides a worse experience for pinning dependency versions since it does not have a native concept of version numbers [0]. Instead people have to grep through the Nixpkgs repo to find the correct hash of their dependency version.

    > This is even more true for Nix, which has the largest and most up-to-date package repositories out there

    No, Docker has the closure (to borrow Nix's terminology) of all of the package managers in that graph. If you add the height of the Debian packages with Pypi and Hackage you already have Nix beat. You can keep adding - cargo, ruby gems, etc all in their native package managers. If Nix were better off then people would be adapting Nix packages to other ecosystems. But the reality is the other way around.

    > Plus, with Nix, you can easily make a new package based on existing packages with a mere few lines of code if the existing packages doesn't fit your needs. Other package managers besides Guix doesn't offer you that flexibility so you'd have to compile from scratch

    With Nix, you are forced to make new packages based on existing packages. That is not a benefit. Regarding "if the existing packages doesn't fit your needs", compiling from source is not a big deal since Docker caches output artifacts.

    [0]: https://github.com/NixOS/nixpkgs/issues/93327

  • NixOS as a daily driver
    3 projects | reddit.com/r/NixOS | 29 Nov 2021
    search for issues here https://github.com/NixOS/nixpkgs/issues
  • Smoking a turkey with Prometheus, Home Assistant, and Grafana
    1 project | reddit.com/r/programmingcirclejerk | 28 Nov 2021
    I think I found a github: https://github.com/NixOS/nixpkgs/pull/126326
  • Shall updatedb be run as a service by default?
    1 project | reddit.com/r/NixOS | 27 Nov 2021
    From nixos/modules/misc/locate.nix:
  • Can I install this application manually?
    3 projects | reddit.com/r/NixOS | 26 Nov 2021
    How can I "build wkhtmltopdf with patched Qt4" mentioned in https://github.com/NixOS/nixpkgs/pull/96379 ?

What are some alternatives?

When comparing haskell.nix and nixpkgs you can also consider the following projects:

asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

Home Manager using Nix - Manage a user environment using Nix [[email protected]]

youtube-dl-gui - A cross-platform GUI for youtube-dl made in Electron and node.js

daedalus - The open source cryptocurrency wallet for ada, built to grow with the community


HomeBrew - 🍺 The missing package manager for macOS (or Linux)

spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

devshell - Per project developer environments

git-lfs - Git extension for versioning large files

golang-samples - Sample apps and code written for Google Cloud in the Go programming language.

template-nixos - The NixOS template, configured for Gitpod (www.gitpod.io) to give you pre-built, nix based ephemeral operating system environments in the cloud.

bcachefs-script - Installs Ubuntu to a new disk using bcachefs as the root partition