Skip to content

sga001/xpir-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust bindings for XPIR

We wrote this Rust wrapper as part of our paper in order to microbenchmark and use XPIR.

To install, you need all of XPIR's dependencies (boost >= 1.55, gmp, mpfr). You can install them as follows.

Ubuntu 14.04 (or later) / Debian

$ sudo apt-get install libboost1.55-all-dev libmpfr-dev libgmp-dev

Arch:

$ sudo pacman -S boost mpfr gmp

There is no need to compile XPIR. It will be built and linked automatically.

Compiling XPIR rust bindings

$ git submodule init
$ git submodule update
$ cargo build

Reproducing the results in the paper

If you would like to reproduce the microbenchmarks found in the paper (Figure 9), simply run:

$ cargo bench [prefix of name of benchmark (or leave blank to run all)]

For example, to reproduce the XPIR entries of the first row of Figure 9 (Query), simply run:

$ cargo bench query

To reproduce a single data point, for example the Answer entry for XPIR (d=2) where n=262,144, run:

$ cargo bench reply_d2/262144

Note that to run the microbenchmakrs for d=3 you need to manually modify the DIM variable in benches/pir.rs. You can also find the code that runs these benchmarks (and their names) in that same file.

To reproduce latency and throughput results, check out the pir-test repository (this also has examples on how to use XPIR-rust in a client-server networked application).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published