Giter VIP home page Giter VIP logo

sunder's Introduction

Sunder

CircleCI Gitter

Sunder user interface

Sunder is an implementation of Shamir's Secret Sharing based on the RustySecrets library. It is alpha-quality software and has not been audited. Please see the documentation for details.

Development

You will need Node and NPM. We use Node LTS for Sunder development, most recently Node v8.9.4 and NPM v5.6.0. Prior versions of Node and NPM may also work, but we are not trying to maintain compatability with them at this time.

To perform secret splitting and recovery, Sunder depends on rusty-secrets, a native module written in Rust.

This package requires a stable version of the Rust toolchain. Please see the Rust documentation for installation instructions.

If you have questions or comments, you can join us in our Gitter chat room.

Quickstart

  1. Clone the git repository
  2. npm install
  3. npm run dev

For development use npm run dev. This does two things: it starts an electron instance with development features enabled, and it starts a webpack dev server. The dev server is to enable 'hot module reloading', which means that changes to the source on your file system will be reflected in the running application code in real time.

If you get an error from node-gyp during npm install, note that it expects python to resolve to Python 2.x.

Testing

  • To run the unit tests: make test-unit
  • For development you might enjoy the continuously updating tests: npm run test-watch
  • The end-to-end integration suite can be run with make test-e2e. Note that this runs agains built code, so npm run build-app will run beforehand.
  • To run all tests, use make test. Again, npm run build-app will run before the integration tests.

Building

Linux

Linux packages are built in a docker container, so they can be built on either Linux or Mac OS X. You will need to install the following prerequisites for the build environment:

  1. Docker

Once you have the prerequisites installed, you should be able to

make build-deb

Packages will be found in dist/.

OS X

To package up the app for your current platform (e.g. OS X):

make build-dmg

Note that this will run build-app so there's no need to run that beforehand.

Packages will be stored in dist/<platform>.

Code Signing

Code signing is handled automatically by the electron-builder package. All you should need to do is add the signing identity through xcode, and electron-builder will discover it automatically. See Apple documentation and electron-builder documentation for more info.

Documentation

Editing the docs

Install the requirements (use of virtualenv is highly recommended), then pull up a live reload interface for editing:

pip install -r requirements.txt
make docs

Linting the docs

You can check for common syntax and formatting errors in the documentation without pushing to CI:

make docs-lint

The linting process will rebuild all local assets from scratch, so it cannot be used at the same time as make docs.

License

BSD 3-Clause License

sunder's People

Contributors

gabeisman avatar garrettr avatar conorsch avatar liliakai avatar msheiny avatar emkll avatar eloquence avatar romac avatar abhn avatar justintroutman avatar kvrhdn avatar kushaldas avatar mdrose avatar

Watchers

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