Skip to content

anoma/juvix-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Juvix Workshop

tara mascot smiling

Open in GitHub Codespaces

Table of Contents

Introduction

Welcome to Juvix!

In this workshop we will install the Juvix compiler and related tools, take a tour of the Juvix language, and explore some Juvix applications.

Installing Juvix

Please use one of the following options to install the Juvix compiler. Juvix is supported on Linux x86_64 and macOS x86_64 or aarch64 (M1/M2).

Prerequisites

The Juvix compiler requires the LLVM/clang compiler to be available on your system PATH in order to build native binaries.

macOS homebrew

If you use the Homebrew package manager you can use our tap:

brew update
brew tap anoma/juvix
brew install juvix

Linux / macOS automatic installer

To install for linux or macOS run the following in a terminal (as a non-root user):

curl --proto '=https' --tlsv1.2 -sSfL https://get.juvix.org | sh

Manual installation

There are also binaries for the Juvix compiler available to download

OS / Architecture
Linux x86_64
macOS x86_64
macOS aarch64 (M1/M2)

Online GitHub Workspace

We have set up a GitHub codespace with a pre-configured workspace, allowing you to seamlessly dive into the workshop without the hassle of any installations.

Open in GitHub Codespaces

IDE Setup

Visual Studio Code

First install visual studio code from the Microsoft website https://code.visualstudio.com/download

In the extension tab search for juvix and install the extension that features the Tara logo.

See the vscode-juvix repository for usage information.

Emacs

To get started, clone the juvix-mode repository

git clone https://github.com/anoma/juvix-mode.git

And add the following lines to your Emacs configuration file:

(push "/path/to/juvix-mode/" load-path)
(require 'juvix-mode)

See the juvix-mode repository for usage information.

Juvix Documentation

The full documentation for Juvix is available at https://docs.juvix.org

Workshop Exercises

Try the workshop exercises in the Juvix project at exercises/Exercises.juvix

Juvix Programs

Hello World

Compile and run the famous Hello World program:

juvix compile hello-world/HelloWorld.juvix && ./HelloWorld

Anoma Applications

One of the goals of Juvix is to be used as language to write applications for the Anoma protocol.

In anoma/ we will explore the structure of Anoma applications built using the Taiga execution model and use the taiga simulator to test them.

Arithmetic Circuits / Zero-knowledge Proofs

The Juvix compiler has a backend that targets the VampIR arithmetic circuit intermediate language. VampIR can then be used to generate zero-knowledge proofs that relate inputs and output of the program.

Not all Juvix programs can be compiled to VampIR. Future releases of Juvix will improve VampIR support.

See arithmetic-circuits/ for an example.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •