Skip to content

Packages and Projects

Quick Start

To install a package, you must sure that you have created the Package.juvix file. You can run juvix init to get a template Package.juvix file. A more detailed description on the usage of Package.juvix can be found in How to setup a Juvix project. For now, one example is provided below. Put the following in your Package.juvix file within the directory of your project.

Package.juvix
module Package;

import PackageDescription.V2 open;

package : Package := defaultPackage
  { dependencies := [
  github "anoma" "juvix-stdlib" "f68b0614ad695eaa13ead42f3466e0a78219f826"
  ]
  }
;
  • anoma/juvix-containers


    Immutable container types for Juvix.

    • BinaryTree, Map, Queue, Set, Tree, UnbalancedSet, and much more to come.

    • Tests using anoma/juvix-test.

    Add the following to your Package.juvix file in the dependencies field:

    github "anoma" "juvix-containers" "v0.10.0"
    
  • anoma/juvix-quickcheck


    This package provides property-based testing for the Juvix programming language inspired by the popular Haskell library, QuickCheck.

    • Automated testing: Generate random test cases to validate properties of Juvix code.

    Add the following to your Package.juvix file in the dependencies field:

    github "anoma" "juvix-quickcheck" "v0.10.0"
    --8-- [end:juvix-quickcheck]
    ; 
    github "anoma" "juvix-stdlib" "v0.2.0"
    ;
    github "anoma" "abstract-resource-machine-simulator" "2fbb90b1282c249ea9cf87d212370561dc07f2d4"
    ]};
    
  • anoma/juvix-stdlib


    Shipped with Juvix, the standard library provides a set of useful functions and types for writing Juvix programs.

    Add the following to your Package.juvix file in the dependencies field:

    github "anoma" "juvix-stdlib" "v0.2.0"
    
  • anoma/juvix-test


    A unit testing framework for Juvix programs.

    Add the following to your Package.juvix file in the dependencies field:

    github "anoma" "juvix-test" "v0.9.0"
    

Projects using Juvix

  • anoma/abstract-resource-machine-simulator


    The Abstract Resource Machine Simulator is a Juvix function that simulates the RM execution model.

    Add the following to your Package.juvix file in the dependencies field:

    github "anoma" "abstract-resource-machine-simulator" "2fbb90b1282c249ea9cf87d212370561dc07f2d4"
    
  • anoma/juvix-e2e-demo


    A project for demonstrating the process of generating arithmetic circuits from high-level specifications. This CodeSpace includes all the necessary compilers for circuit generation, such as Juvix, GEB, and VampIR. Furthermore, it features the Juvix VSCode extension to simplify writing Juvix programs and allows users to interact with and evaluate the resulting GEB/VampIR programs.

Please let us know if you are using Juvix in your project. Opening an issue or a pull request to add it to this list.

Check out other examples of Juvix programs in the examples/milestone.