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.

 module Package;

 import PackageDescription.V1 open;

 package : Package := defaultPackage {name := "lanaguage"};
  • 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.7.1"
    
  • 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.8.0"
    --8-- [end:juvix-quickcheck]
    ; 
    github "anoma" "juvix-stdlib" "86f9e82c34395f3e0447c58566bc92347603ebd3"
    ;
    github "anoma" "taiga-simulator" "fd0ac317735bb2752e40f1fa0dd06b2de432bfd5"
    ]};
    
  • 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" "86f9e82c34395f3e0447c58566bc92347603ebd3"
    
  • 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.6.1"
    

Projects using Juvix

  • anoma/taiga-simulator


    The Taiga Simulator is a Juvix function that simulates the Taiga execution model.

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

    github "anoma" "taiga-simulator" "fd0ac317735bb2752e40f1fa0dd06b2de432bfd5"
    
  • anoma/juvix-e2e-demo


    A project for demostrating 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.

Other Small Example Programs

The following links are clickable versions of their corresponding Juvix program. The sources can be found in the examples/milestone directory in the Juvix repository. The webpages can be generated by running the following command:

juvix html --recursive FileName.juvix