1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-15 10:03:22 +03:00
Juvix empowers developers to write code in a high-level, functional language, compile it to gas-efficient output VM instructions, and formally verify the safety of their contracts prior to deployment and execution.
Go to file
2022-03-18 13:06:19 +01:00
.github/workflows fix compilation errors 2021-12-23 11:19:46 +01:00
agda-proofs [proofs] add some proofs on small matrices 2022-02-28 18:31:31 +01:00
app separate MiniHaskell into MicroJuvix and 'new' MiniHaskell 2022-03-17 18:18:10 +01:00
assets add integer and string literals 2022-03-15 12:37:33 +01:00
docs Revisions on Frid. 17 Dec 2021-12-17 12:33:02 +00:00
examples [stdlib] add MiniJuvix standard library as a submodule 2022-02-03 18:06:59 +01:00
minijuvix-stdlib@ad8392f76e [stdlib] update 2022-02-28 18:24:52 +01:00
notes Update Example.agda 2022-03-16 14:21:25 +01:00
src/MiniJuvix [scoped] add ScopedIden 2022-03-18 10:16:43 +01:00
test [tests] add check for pretty printing parsed code 2022-03-17 12:10:45 +01:00
tests [scoped] add ScopedIden 2022-03-18 10:16:43 +01:00
.gitignore delete and ignore .ghci 2021-12-28 17:20:36 +01:00
.gitmodules [stdlib] add MiniJuvix standard library as a submodule 2022-02-03 18:06:59 +01:00
.hlint.yaml [ Makefile ] fixies for make prepare-push target 2021-12-30 09:56:58 -05:00
CHANGELOG.md First commit, initial project template. 2021-09-26 18:59:51 +02:00
hie.yaml [tests] setup basic testing 2022-02-15 14:12:53 +01:00
LICENSE First commit, initial project template. 2021-09-26 18:59:51 +02:00
Makefile [ Makefile ] Adds Template haskell flag for Ormulu 2022-03-18 10:43:56 +01:00
minijuvix.agda-lib WIP. Adapting source code from heliaxdev/juvix for parsing purposes. 2021-11-11 20:08:49 +01:00
package.yaml separate MiniHaskell into MicroJuvix and 'new' MiniHaskell 2022-03-17 18:18:10 +01:00
README.md [ README ] Minor updates 2022-03-18 13:06:19 +01:00
stack.yaml [stack] update resolver 2022-02-28 18:28:09 +01:00

MiniJuvix GPL-3.0-only license Haskell CI

Description

MiniJuvix is a dependently functional programming language for writing efficient formally-verified validity predicates, which can be deployed to various distributed ledgers. This is a software released for experimentation and research purposes only. No warranty is provided or implied.

MiniJuvix addresses many issues that we have experienced while trying to write and deploy decentralised applications present in the ecosystem of smart-contracts:

  • the difficulty of adequate program verification,
  • the ceiling of compositional complexity,
  • the illegibility of execution costs, and
  • the lock-in to particular backends.

Quick Start

To install MiniJuvix, you can download its sources using Git from the Github repository. Then, the program can be downloaded and installed with the following commands. You will need to have installed Stack.

 $ git clone https://github.com/heliaxdev/minijuvix.git
 $ cd minijuvix
 $ stack install

If the installation succeeds, you must be able to run the minijuvix command from any location. To get the complete list of commands, please run minijuvix --help.

  • How to install Stack:? if it's not installed.

    • For Ubuntu : apt install stack
    • For Debian : apt install haskell-stack
    • For Arch Linux : pacman -S stack
    • For macOS : brew install haskell-stack
    • For Windows, following the instructions here.

It is required at least 8GB RAM for stack installation.

  • To test everything works correctly, you can run the following command:
$ stack test

Community

We would love to hear what you think of MiniJuvix! Join us on Discord