packages feed

nova-nix-0.1.0.0: nova-nix.cabal

cabal-version:      3.0
name:               nova-nix
version:            0.1.0.0
synopsis:           Windows-native Nix implementation in pure Haskell
description:
  A pure Haskell implementation of the Nix package manager that runs natively
  on Windows — no WSL, no MSYS2, no Cygwin required.  Evaluates .nix files,
  builds derivations, manages a content-addressed store, and substitutes
  pre-built binaries from remote caches (nova-cache, cache.nixos.org).

  Built on top of @nova-cache@ for NAR serialization, narinfo handling,
  Ed25519 signing, and binary substitution.

license:            MIT
license-file:       LICENSE
author:             Devon Tomlin, Galen, Kyle Jensen
maintainer:         devon.tomlin@novavero.ai
homepage:           https://github.com/Novavero-AI/nova-nix
bug-reports:        https://github.com/Novavero-AI/nova-nix/issues
category:           Nix, Distribution, System
stability:          experimental
build-type:         Simple
tested-with:        GHC == 9.6.7
extra-doc-files:
    CHANGELOG.md

-- ---------------------------------------------------------------------------
-- Library: core modules (parser, evaluator, store, builder, substituter)
-- ---------------------------------------------------------------------------
library
  exposed-modules:
    Nix.Expr
    Nix.Expr.Types
    Nix.Parser
    Nix.Parser.Expr
    Nix.Parser.Internal
    Nix.Parser.Lexer
    Nix.Parser.ParseError
    Nix.Eval
    Nix.Eval.Context
    Nix.Eval.Types
    Nix.Eval.IO
    Nix.Eval.Operator
    Nix.Eval.StringInterp
    Nix.Store
    Nix.Store.Path
    Nix.Store.DB
    Nix.DependencyGraph
    Nix.Derivation
    Nix.Builder
    Nix.Substituter
    Nix.Builtins
    Nix.Hash

  build-depends:
      base                >= 4.16 && < 5
    , bytestring          >= 0.11 && < 0.13
    , containers          >= 0.6 && < 0.8
    , crypton             >= 1.0 && < 2
    , directory           >= 1.3 && < 1.4
    , filepath            >= 1.4 && < 1.6
    , http-client         >= 0.7 && < 0.8
    , http-client-tls     >= 0.3 && < 0.4
    , http-types          >= 0.12 && < 0.13
    , memory              >= 0.18 && < 1
    , mtl                 >= 2.2 && < 2.4
    , nova-cache          >= 0.2 && < 0.3
    , process             >= 1.6 && < 1.7
    , sqlite-simple       >= 0.4 && < 0.5
    , text                >= 2.0 && < 2.2
    , time                >= 1.9 && < 1.15

  hs-source-dirs:   src
  default-language:  Haskell2010
  default-extensions:
    BangPatterns
    OverloadedStrings
  ghc-options:
    -Wall
    -Wcompat
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns

-- ---------------------------------------------------------------------------
-- CLI executable
-- ---------------------------------------------------------------------------
executable nova-nix
  main-is:          Main.hs
  hs-source-dirs:   app
  default-language:  Haskell2010
  default-extensions:
    OverloadedStrings
  ghc-options:      -Wall -Wcompat -threaded -rtsopts

  build-depends:
      base                >= 4.16 && < 5
    , containers          >= 0.6 && < 0.8
    , directory           >= 1.3 && < 1.4
    , filepath            >= 1.4 && < 1.6
    , nova-nix
    , text                >= 2.0 && < 2.2

-- ---------------------------------------------------------------------------
-- Tests
-- ---------------------------------------------------------------------------
test-suite nova-nix-test
  type:             exitcode-stdio-1.0
  main-is:          Main.hs
  hs-source-dirs:   test
  default-language: Haskell2010
  default-extensions:
    OverloadedStrings
  ghc-options:      -Wall -Wcompat

  build-depends:
      base                >= 4.16 && < 5
    , bytestring          >= 0.11 && < 0.13
    , containers          >= 0.6 && < 0.8
    , directory           >= 1.3 && < 1.4
    , filepath            >= 1.4 && < 1.6
    , nova-nix
    , process             >= 1.6 && < 1.7
    , text                >= 2.0 && < 2.2

source-repository head
  type:     git
  location: https://github.com/Novavero-AI/nova-nix
  branch:   main