elm2nix alternatives and similar packages
Based on the "Unclassified" category.
Alternatively, view elm2nix alternatives based on common mentions on social networks and blogs.
-
gotta-go-fast
A command line utility for practicing typing and measuring your WPM and accuracy. -
heroku-persistent
Parse DATABASE_URL into configuration types for Persistent -
bit-stream
Lazy infinite compact streams with cache-friendly O(1) indexing and applications for memoization -
ascii-art-to-unicode
Small program to convert ASCII box art to Unicode box drawings. -
hackertyper
"Hack" like a programmer in movies and games! Inspired by hackertyper.net -
rollbar-cli
A group of libraries written in Haskell to communicate with Rollbar API. -
aeson-serialize
Functions for serializing a type that is an instance of ToJSON -
base-unicode-symbols
Unicode alternatives for common functions and operators -
dependent-sum-template
Template Haskell code to generate instances of classes in dependent-sum package -
argon2
Haskell bindings to libargon2 - the reference implementation of the Argon2 password-hashing function -
servant-streaming
Support for servant requests and responses via the 'streaming' library -
containers-unicode-symbols
Unicode alternatives for common functions and operators -
semver-range
Implementation of semver and NPM-style semantic version ranges in Haskell -
postgresql-simple-sop
Generic functions for postgresql-simple
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of elm2nix or a related project?
README
elm2nix
Convert an Elm project into Nix expressions.
It consists of multiple commands:
elm2nix convert
: Givenelm.json
in current directory, all dependencies are parsed and their sha256sum calculatedelm2nix snapshot
: Downloads snapshot of http://package.elm-lang.org intoversions.dat
elm2nix init
: Generatesdefault.nix
that glues everything together
Assumptions
Supports Elm 0.19.x
Installation
From nixpkgs (recommended)
Make sure you have up to date stable or unstable nixpkgs channel.
$ nix-env -iA elm2nix
From source
$ git clone https://github.com/domenkozar/elm2nix.git
$ cd elm2nix
$ nix-env -if .
Usage
$ git clone https://github.com/evancz/elm-todomvc.git
$ cd elm-todomvc
$ elm2nix init > default.nix
$ elm2nix convert > elm-srcs.nix
$ elm2nix snapshot > versions.dat
$ nix-build
$ chromium ./result/Main.html
Running tests (as per CI)
$ ./scripts/tests.sh
FAQ
Why is mkDerivation inlined into default.nix
?
As it's considered experimental, it's generated for now. Might change in the future.
How to use with ParcelJS and Yarn?
Instead of running elm2nix init
, use something like:
{ pkgs ? import <nixpkgs> {}
}:
let
yarnPkg = pkgs.yarn2nix.mkYarnPackage {
name = "myproject-node-packages";
packageJSON = ./package.json;
unpackPhase = ":";
src = null;
yarnLock = ./yarn.lock;
publishBinsFor = ["parcel-bundler"];
};
in pkgs.stdenv.mkDerivation {
name = "myproject-frontend";
src = pkgs.lib.cleanSource ./.;
buildInputs = with pkgs.elmPackages; [
elm
elm-format
yarnPkg
pkgs.yarn
];
patchPhase = ''
rm -rf elm-stuff
ln -sf ${yarnPkg}/node_modules .
'';
shellHook = ''
ln -fs ${yarnPkg}/node_modules .
'';
configurePhase = pkgs.elmPackages.fetchElmDeps {
elmPackages = import ./elm-srcs.nix;
versionsDat = ./versions.dat;
};
installPhase = ''
mkdir -p $out
parcel build -d $out index.html
'';
}