Thanks to visit codestin.com
Credit goes to github.com

Skip to content
forked from anoma/juvix

A more elegant language for a more civilized age.

License

Notifications You must be signed in to change notification settings

Happy-Ferret/juvix

 
 

Repository files navigation

Juvix

Tardigrade
(Aditya via Wikimedia Commons, CC-BY-SA 3.0)

GitHub Build status GitHub issues

Overview

Juvix synthesizes a high-level frontend syntax, dependent-linearly-typed core language, and low-level parallelisable optimally-reducing execution model into a single unified stack for writing formally verifiable, efficiently executable smart contracts which can be deployed to a variety of distributed ledgers.

Juvix's compiler architecture is purpose-built from the ground up for the particular requirements and economic trade-offs of the smart contract use case — it prioritises behavioural verifiability, semantic precision, and output code efficiency over compilation speed, syntactical familiarity, and backwards compatibility with existing blockchain virtual machines.

For details, see the language reference.

Caveats

This is pre-alpha software released for experimentation & research purposes only.

Do not expect API stability. Expect bugs. Expect divergence from canonical protocol implementations.

Formal verification of various properties of the Juvix language & compiler in Agda is in progress but not yet complete.

No warranty is provided or implied.

Juvix is presently executed by a resource-tracing interpreter.

Backends for the EVM, WASM, Michelson, and LLVM are planned but not yet implemented.

Contributing

See CONTRIBUTING.md.

Installation

Install with (Stack and z3 required):

make

For full optimizations (but slower compile times):

make build-opt

Usage

Juvix is not yet production-ready; however, you can play around with some functionality in an interactive REPL:

juvix interactive

Development

To open a REPL with the library scoped:

make repl-lib

To open a REPL with the executable scoped:

make repl-exe

About

A more elegant language for a more civilized age.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 76.7%
  • Agda 9.8%
  • Rust 5.1%
  • Idris 4.3%
  • Common Lisp 3.3%
  • Shell 0.4%
  • Other 0.4%