diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 94aaf75..c6cb5ef 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,28 @@ # Contributing -Thank you for your interest in the FabAccess system. +Thank you for your interest in helping out the FabAccess system! + +To help develop Diflouroborane you will need a Rust toolchain. I heavily recommend installing +[rustup](https://rustup.rs) even if your distribution provides a recent enough rustc, simply because +it allows to easily switch compilers between several versions of both stable and nightly. It also +allows you to download the respective stdlib crate, giving you the option of an offline reference. + +## Git Workflow / Branching + +We use a stable master / moving development workflow. This means that all /new/ development should +happen on the `development` branch which is regularly merged into `master` as releases. The +exception of course are bug- and hotfixes that can target whichever branch. + +If you want to add a new feature please work off the development branch. We suggest you create +yourself a feature branch, e.g. using `git switch development; git checkout -b +feature/my-cool-feature`. +Using a feature branch keeps your local `development` branch clean, making it easier to later rebase +your feature branch onto it before you open a pull/merge request. + +When you want feedback on your current progress or are ready to have it merged upstream open a merge +request. Don't worry we don't bite! ^^ + + +## Tests + +Sadly, still very much `// TODO:`. We're working on it! :/ diff --git a/Cargo.toml b/Cargo.toml index 275b1f6..5713678 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,14 @@ [package] name = "diflouroborane" version = "0.1.0" -authors = ["Gregor Reitzenstein "] +authors = [ "Gregor Reitzenstein " + , "Kai Jan Kriegel " + , "Joseph Langosch " + , "Jannis Rieger " + ] license = "GPL-3.0" edition = "2018" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [features] default = ["lmdb"] diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..0be015f --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,35 @@ +## Installation + +Currently there are no distribution packages available. +However installation is reasonably straight-forward, since Diflouroborane compiles into a single +mostly static binary with few dependencies. + +At the moment only Linux is supported. If you managed to compile Diflouroborane please open an issue +outlining your steps or add a merge request expanding this part. Thanks! + +### Requirements + +General requirements; scroll down for distribution-specific instructions + +- GNU SASL (libgsasl). + * If you want to compile Diflouroborane from source you will potentially also need development + headers +- capnproto +- rustc stable / nightly >= 1.48 + * If your distribution does not provide a recent enough rustc, [rustup](https://rustup.rs/) helps + installing a local toolchain and keeping it up to date. + +###### Arch Linux: +```shell +$ pacman -S gsasl rust capnproto +``` + +### Compiling from source + +Diflouroborane uses Cargo, so compilation boils down to: + +```shell +$ cargo build --release +``` + +The compiled binary can then be found in `./target/release/diflouroborane` diff --git a/README.md b/README.md index e69de29..cab0e6a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,27 @@ +# FabAccess Diflouroborane + +Diflouroborane (shorter: BFFH, the chemical formula for Diflouroborane) is the server part of +FabAccess. +It provides a server-side implementation of the [FabAccess API](/fabinfra/fabaccess/fabaccess-api). + +## What is this? + +FabAccess is a prototype-grade software suite for managing access, mostly aimed +at Makerspaces, FabLabs, and other open workshops. It is designed to allow secure access control to +machines and other equipment that is dangerous or expensive to use. It tries to also be cheap enough +to be used for all other things one would like to give exclusive access to even when they are not +dangerous or expensive to use (think 3D printers, smart lightbulbs, meeting rooms). + +FabAccess uses a Client/Server architecture with a [Cap'n Proto](https://capnproto.org/) API. You +can find the API schema files over [in their own repository](/fabinfra/fabaccess/fabaccess-api). +The reference client is [Borepin](/fabinfra/fabaccess/borepin), written in C#/Xamarin to be able to +be ported to as many platforms as possible. + + +## Installation + +See [INSTALL.md](INSTALL.md) + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md). Thanks!