Giter Site home page Giter Site logo

matteo-cristino / zenroom Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dyne/zenroom

0.0 0.0 0.0 48.9 MB

Small, secure and portable virtual machine for data processing

Home Page: https://dev.zenroom.org

License: GNU Affero General Public License v3.0

Makefile 0.75% Shell 11.76% C 69.03% Lua 10.42% C++ 0.56% HTML 4.23% CSS 0.03% Roff 0.06% JavaScript 0.02% Python 1.35% Dockerfile 0.01% CMake 1.21% Go 0.08% Java 0.03% TypeScript 0.18% Meson 0.12% GDB 0.01% Rust 0.08% PHP 0.04% Objective-C 0.03%

zenroom's Introduction

Zenroom crypto VM

Zenroom logo

Zenroom is a secure language interpreter of both Lua and its own secure domain specific language (DSL) to execute fast cryptographic operations using elliptic curve arithmetics.

The Zenroom VM is very small, has no external dependency, is fully deterministic and ready to run end-to-end encryption on any platform: desktop, embedded, mobile, cloud micro-services, web browsers. It can be embedded inside applications written in Javascript, Python3, Rust or Golang.

Zencode is the name of the DSL executed by Zenroom: it is similar to human language and can process large data structures while operating cryptographic transformations and basic logical operations on them.

software by Dyne.org

Timeline

  • 2017 - Development started
  • 2019 - Released version 1.0.0
  • 2022 - Released version 2.0.0 (long term support)
  • 2022 - Started development of 3.0.0

This software has zero dependencies. If you chose to use it in your project be assured that we intend to support the same code to still run in 20 years from now.

Version 3 development started with the implementation of Quantum Resistant encryption and signatures.

Links

Continue to the developer website

or

Read the Zencode whitepaper

or

Visit the product website for a friendly introduction to the love we put in craftsmanship.

For many quick running examples visit the ApiRoom online IDE powered by Zenroom.

Zenroom is licensed as AGPLv3; we are open to grant exceptions on a commercial basis.

Applications

Many applications already include Zenroom and use the Zencode language.

Getting Started

To quickly try out Zenroom using the Zencode language with some examples navigate to ApiRoom and start typing into the browser.

The Zenroom VM runs locally in your browser (needs WASM) and ApiRoom provides various examples to show operational crypto flows.

ApiRoom is also an IDE (Integrated Development Environment) and by signing in with a username and password you can save your contracts and download them as a Dockerfile micro-service ready to deploy.

Tutorials

Build

Dependencies: makefile, cmake, zsh, gcc

Optional: musl-libc, emscripten for wasm builds

Use this command sequence:

git clone https://github.com/dyne/zenroom
cd zenroom
make linux

to create the CLI executable in src/zenroom

make linux-lib

to create the shared library in src/libzenroom-x86_64.so

make

to list more available targets

Meson + Ninja

Practical build scripts for GNU/Linux are provided using Meson + Ninja

make meson

Will produce a zenroom executable and a libzenroom shared lib in zenroom/build.

License

Copyright (C) 2017-2023 Dyne.org foundation

Designed and written by Denis "Jaromil" Roio with the help of Puria Nafisi Azizi and Andrea D'Intino.

Includes code contributions by Alberto Lerda, Matteo Cristino, Danilo Spinella, Luca Di Domenico and Rebecca Selvaggini.

Reviews and suggestions contributed by: Richard Stallman, Daniele Lacamera, Enrico Zimuel, Sofía Celi, Sebastian Blichfeld, Danilo Spinella, Adam Burns, Thomas Fuerstner and Jürgen Eckel.

Zenroom complies with the REUSE license specification and redistributes:

  • Lua 5.3 - Copyright © 1994–2019 Lua.org, PUC-Rio.
  • Apache Milagro Crypto Library (AMCL)
  • Various Lua libraries released under MIT license

Special thanks to our colleagues in the DECODE project whose research has inspired the birth of this project: Francesca Bria, George Danezis, Ola Bini, Mark de Villiers, Ivan Jelincic, Alberto Sonnino, Jim Barritt, Christian Espinoza, Samuel Mulube and Nina Boelsums.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

zenroom's People

Contributors

jaromil avatar albertolerda avatar puria avatar matteo-cristino avatar andrea-dintino avatar danyspin97 avatar claucece avatar dependabot[bot] avatar rebeccaselvaggini avatar splasky avatar parazyd avatar luckydd99 avatar danielinux avatar jpopesculian avatar adam-burns avatar kozko2001 avatar abbettowski avatar davie0 avatar dappiu avatar ezimuel avatar eckelj avatar albhilazo avatar chespinoza avatar sigsalerno avatar jserv avatar sakrecoer avatar bum2 avatar fdeantoni avatar niiinja avatar sguldemond avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.