2022-04-26 12:29:29 -07:00
2022-02-14 18:02:33 -08:00
2022-04-15 11:20:29 -07:00
PIR
2022-04-23 18:21:15 -07:00
2022-04-22 11:44:07 -07:00
2022-04-25 17:48:54 -07:00
2022-04-25 17:48:54 -07:00
2022-04-19 10:44:17 -07:00
2022-04-19 10:44:17 -07:00
2022-04-19 10:44:17 -07:00
2022-04-19 10:44:17 -07:00
2022-04-25 17:48:54 -07:00
2021-11-08 12:18:09 -08:00
2021-12-03 11:30:49 -08:00
2021-12-03 17:10:09 -08:00
2022-04-25 10:37:39 -07:00
2022-04-25 10:33:16 -07:00
2022-04-26 12:29:29 -07:00
2022-04-18 13:19:24 -07:00
2022-01-13 12:55:31 -08:00

Rust

Intro

Sunscreen is an ecosystem for building privacy-preserving applications using fully homomorphic encryption and zero-knowlege proofs.

WARNING! This library is meant for experiments only. It has not been audited and is not intended for use in production.

Set-up

These directions apply for the requirements to develop the sunscreen platform itself, which may be more than needed to merely consume it as a dependency. If you wish to develop an application using Sunscreen, see the installation

Install Rust

Install Rustup and follow the directions for your OS. We recommend stable Rust 1.58 or later.

MacOS

brew install cmake git

Linux

Install prereqs

Using yum: sudo yum install gcc gcc-c++ cmake3 openssl-devel clang git

Using apt: sudo apt install build-essential clang cmake3 libssl-dev git

After installing prereqs, make a link to cmake3 named cmake sudo ln /usr/bin/cmake3 <somwhere/under/$PATH/>cmake

Windows

We recommend developing sunscreen on macOS or Linux, as Windows is really slow.

Cmake

Install cmake 3.

Clang

Install llvm+clang. In the installer, select the option to add LLVM to your %PATH%. If you forget to do check this option, add C:\Program Files\LLVM\bin to your %PATH%.

MSVC C++

Install the MSVC C++ toolchain

When prompted for what to install, ensure you additionally check the Windows 10 SDK. You'll need to rerun the tool and modify your installation if you forget to do this.

Enable long file paths

Some of our compilation tests produce really long file paths. These tests will fail unless you enable long file paths. TL;DR; run regedit.exe, set HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem to 1 and reboot.

git

Install git. Defaults are fine.

Initialize submodules

git submodule init
git submodule update

Dev workflows

Working Sunscreen is as you'd expect with any other Rust repository:

Build

cargo build

Test

cargo test --release

Docs

cargo doc --open

Format

cargo fmt

Debugging

We have a launch.json checked in that defines a bunch of debug configurations. In VSCode, you should see a bunch of dropdowns in the debug menu to debug the tests and examples.

Description
No description provided
Readme AGPL-3.0 115 MiB
Languages
Rust 89.5%
C 3.3%
Metal 2.1%
Cuda 2%
HTML 1.5%
Other 1.5%