Git Product home page Git Product logo

ope-btree's Introduction

Engine for searching over encrypted data.

Get and Put operations are implemented and working fine, but OpeDatabse isn't ready for use

related paper: https://eprint.iacr.org/2013/129.pdf

Before git push execute:

cargo fix --allow-dirty --allow-staged

cargo fmt & cargo test

cargo clippy (recomended)

Run test with logs

RUST_LOG=debug cargo test ope_btree::tests::put_many_and_get_them_back_test -- --nocapture    

Run client and server:

Run Grpc-based Ope Db server implementation

bash cargo run --bin server-grpc -- --arity 4

Run Grpc-based Ope Db client implementation

bash cargo run --bin client-grpc -- --host http://localhost:7777 --debug-mode true

Progress

  • create base entities (Node, Cmd, MPath, etc.)
  • implement KVStore
  • implement get operation
  • implement put operation
  • integration test for BTree
  • create Database
  • integration test for Database
  • implement transport (Grpc)
  • make integration test with real transport
  • support dataset for client
  • support dataset for server
  • create CI with Github actions
  • make distribution for the server (build docker image)
  • make cli client
  • make wasm cli
  • verifying non-trivial rebalancing
  • fix all todos
  • implement range operation (when Streams will be stabilized)
  • implement delete operation
  • implement rockDb backend for all KVStores
  • keep min and max elem of tree for quick response if key < min and > max (optimisation)
  • bulk upload api is nice to have.
  • implement OPE table [optional] (OPE Table is updated to map the DET ciphertexts to their new or updated OPE encodings, see paper)
  • Put operation should rewrite encrypted key and value

ope-btree's People

Contributors

ricogit avatar

Stargazers

 avatar Rust avatar

Watchers

James Cloos avatar  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.