Giter VIP home page Giter VIP logo

lol's Introduction

Build Status

This branch is master. It should always be compiling!


This repository contains several Haskell libraries:

  • The lol directory contains the Haskell library Λ ⚬ λ (Lol), described in the paper Λ ⚬ λ: Functional Lattice Cryptography. More documentation can be found on Hackage. This is the core of the project, and you'll need to install it to use anything else.

  • The apps directory contains example cryptographic applications built using Lol. If you are interested in using our example applications, you will need this library. It is on Hackage here. If you are just writing your own applications, you don't need to install this library.

  • The challenges directory contains code to generate and verify RLWE and RLWR challenges, which are described here.

  • The compiler directory contains an unmaintained, primitive FHE compiler for Lol. Eventually, this will work in conjuction with lol-apps to transform plaintext descriptions of algorithms into their homomorphic counterparts.

Developing in the lol ecosystem: Compiling the lol ecosystem takes a long time. If you are just doing development, you probably don't need to compile (with optimizations) the ecosystem. Instead, you can develop interactively. Run

> stack build lol lol-cpp lol-repa lol-tests lol-benches rlwe-challenges lol-apps --dependencies-only

to build all third-party dependencies of the lol ecosystem, then you can develop with

> ./ghci path/to/file

This command builds the C++ library for lol-cpp and the loads all imported files from the lol ecosystem from source.

You can load all top-level executables with ./ghci AllMain.hs.

Installing Lol:

If you want to run benchmarks or tests, you'll need to compile the ecosystem with optimizations. The easiest way to do this is to use stack, which is included in the Haskell Platform.

> stack setup
> stack build lol

or

> stack setup
> stack install lol-apps

You can run unit tests with stack test <package>. You can run microbenchmarks with stack bench <package>. Currently lol-cpp, lol-repa, and lol-apps have tests and benchmarks.

The lol-apps package includes examples of how to use each application. These are built automatically when you install lol-apps.

lol's People

Contributors

bmanga20 avatar cpeikert avatar crockeea avatar nskins avatar rozbb avatar rrnewton avatar

Watchers

 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.