libnix alternatives and similar packages
Based on the "Foreign" category.
Alternatively, view libnix alternatives based on common mentions on social networks and blogs.
-
erlang
A Foreign Function Interface that lets Haskell and Erlang programs communicate. -
emacs-module
Wrappers around emacs-module.h to write Emacs modules in Haskell -
greencard
Green Card, a foreign function interface pre-processor for Haskell. -
tasty-lua
Integrate Lua tests into tasty. This package is now part of the hslua monorepo. -
hslua-module-text
Lua module providing a selected set of operations on Text. NOTE: moved into the hslua monorepo. -
hslua-module-system
HsLua module for system and directory functions. This repository has been moved to the hslua monorepo. -
marshal-contt
A ContT-based wrapper for Haskell-to-C marshalling functions. -
foreign-storable-asymmetric
Types and instances for implementing a Storable with different peek and poke
Static code analysis for 29 languages.
* 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 libnix or a related project?
Popular Comparisons
README
libnix
Haskell bindings to the nix package manager
This project aims to provide an interface to call nix functionality from the safe haven that is Haskell. As much type safety as possible should be guaranteed to the user.
The project consists of two broad steps:
- bindings to the command line tools
- bindings to the nix libraries themselves
At the moment, an beta version of 1. is implemented, together with a small number of tests to check for possible changes in the interface, which consists mainly of three functions:
parseNixExpr :: Text -> NixAction ParseError NixExpr
instantiate :: NixExpr -> NixAction InstantiateError (StorePath Derivation)
realize :: StorePath Derivation -> NixAction RealizeError (StorePath Realized)
which do what you’d expect; and two helper functions
eval :: NixExpr -> NixAction InstantiateError ()
parseInstRealize :: Text -> NixAction NixError (StorePath Realized)
where parseInstRealize
performs all three steps at once.
Nix Prefetch Wrappers
We implement an additional module that creates nicely typed wrappers
for nix-prefetch-X
tools, please see the module documentation what
is supported exactly.
url :: UrlOptions -> NixAction PrefetchError (Sha256, StorePath Realized)
git :: GitOptions -> NixAction PrefetchError GitOutput
C++ bindings
The second steps would be to directly bind into the C++ library. That could either mean writing a C wrapper and using Haskell’s native FFI, or generating bindings with Hoppy, which we’d prefer. Hoppy would need to be able to handle C++ exceptions first, though.
Other nix libraries on hackage
- cabal2nix: the executable at the base of nix haskell support
- language-nix: library cabal2nix uses to generate its nix files
- hnix: a project to implement the nix expression language in haskell
- nix-eval: runtime eval of Haskell code using nix
- simple-nix: looks like a nix parser, but not entirely sure
It doesn’t look like the scope of libnix collides with any of these packages.