{"id":13654929,"url":"https://github.com/cpeikert/Lol","last_synced_at":"2025-04-23T10:31:38.773Z","repository":{"id":53593726,"uuid":"43394401","full_name":"cpeikert/Lol","owner":"cpeikert","description":"Λ ⚬ λ: Functional Lattice Cryptography","archived":false,"fork":false,"pushed_at":"2021-03-22T14:10:51.000Z","size":4155,"stargazers_count":230,"open_issues_count":12,"forks_count":45,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-17T05:15:55.879Z","etag":null,"topics":["cryptography","fully-homomorphic-encryption","haskell-library","lattices","lol","ring-lwe"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cpeikert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-29T21:04:20.000Z","updated_at":"2025-02-27T20:22:39.000Z","dependencies_parsed_at":"2022-08-20T11:30:46.546Z","dependency_job_id":null,"html_url":"https://github.com/cpeikert/Lol","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpeikert%2FLol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpeikert%2FLol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpeikert%2FLol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpeikert%2FLol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cpeikert","download_url":"https://codeload.github.com/cpeikert/Lol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250416408,"owners_count":21426984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","fully-homomorphic-encryption","haskell-library","lattices","lol","ring-lwe"],"created_at":"2024-08-02T03:00:52.816Z","updated_at":"2025-04-23T10:31:37.981Z","avatar_url":"https://github.com/cpeikert.png","language":"Haskell","funding_links":[],"categories":["Libraries"],"sub_categories":["[Sunscreen](https://sunscreen.tech/)"],"readme":"\n[![Build Status](https://travis-ci.org/cpeikert/Lol.svg?branch=master)](https://travis-ci.org/cpeikert/Lol)\n\nThis branch is master. It should always be compiling!\n\n--------------------------------------------------------------------------------\n\nThis repository contains several Haskell libraries:\n\n  * The `lol` directory contains the Haskell library Λ ⚬ λ (Lol),\n    described in the paper\n    [Λ ⚬ λ: Functional Lattice Cryptography](https://eprint.iacr.org/2015/1134). More\n    documentation can be found on\n    [Hackage](https://hackage.haskell.org/package/lol). This is the\n    core of the project, and you'll need to install it to use anything\n    else.\n\n  * The `lol-apps` directory contains example cryptographic applications\n    built using Lol. If you are interested in using our example\n    applications, you will need this library. It is on Hackage\n    [here](https://hackage.haskell.org/package/lol-apps). If you are\n    just writing your own applications, you don't need to install this\n    library.\n\n  * The `lol-cpp` directory contains a C++ backend \"tensor\"\n    implementation.\n\nDeveloping in the Lol ecosystem:\n\nCompiling the Lol packages takes a long time. If you are just doing\ndevelopment, you probably don't need to compile (with optimizations)\nthe whole ecosystem. Instead, you can develop interactively. Run\n```\n\u003e stack build lol lol-cpp lol-apps lol-tests lol-benches --dependencies-only\n```\nto build all third-party dependencies of the Lol ecosystem, then you can\ndevelop with\n```\n\u003e ./ghci path/to/file\n``` \nThis command builds the C++ library for `lol-cpp` and loads all\nimported files from the Lol ecosystem from source.\n\nYou can load all top-level executables with `./ghci AllMain.hs`.\n\nInstalling Lol:\n\nIf you want to run benchmarks or tests, you'll need to compile the ecosystem\nwith optimizations. The easiest way to do this is to use stack, which is\nincluded in the [Haskell Platform](https://www.haskell.org/platform/).\n```\n\u003e stack setup\n\u003e stack build lol\n```\nor\n```\n\u003e stack setup\n\u003e stack install lol-apps\n```\nYou can run unit tests with `stack test \u003cpackage\u003e`. You can run\nmicrobenchmarks with `stack bench \u003cpackage\u003e`. Currently `lol-cpp`\nand `lol-apps` have tests and benchmarks.\n\nThe `lol-apps` package includes examples of how to use each\napplication. These are built automatically when you install\n`lol-apps`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpeikert%2FLol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcpeikert%2FLol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpeikert%2FLol/lists"}