davidflanagan / foxbox

The FoxBox daemon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FoxBox

Build Status License

Technologies

Rust

We're using Rust for the daemon/server. Currently v1.8.x nightly is required. As of 2016-02-04:

$ rustc -V
rustc 1.8.0-nightly (fae516277 2016-02-13)

It's recommended that you use multirust to install and switch between versions of Rust.

Node

We're using Node to run Selenium tests. Currently v4.x LTS. We plan to stay on stable LTS releases. It's recommended that you use nvm to install and switch between versions of Node.

Target hardware

We're using the Raspberry Pi 2 as a prototyping target (ARMv7). The target operating system is the latest Raspbian which is based on Debian 8.0 Jessie.

Contributing

Note: We're in an iterative prototyping phase of the project. Things are moving really fast so it may be easier to contribute when the dust starts to settle. You've been warned. :shipit:

Forks and feature branches

You should fork the main repo and create pull requests against feature branches of your fork. If you need some guidance with this see:

Setup

$ git clone git@github.com:<username>/foxbox.git
$ cd foxbox

Running the deamon

$ cargo run

Alternatively you can build the app without running it via:

$ cargo build

Rust tests

$ cargo test

Selenium tests

You'll need to make sure you install the dependencies via:

$ npm install

Then you can run the Selenium tests via:

$ npm test

Cross compiling to ARM

There is no one solution for this. The process will be different depending on your operating system. You may be able to build on a RPi, but the larger the applicatoin gets, the slower and more painful this will be (not recommended).

Linux

@fabricedesre has created a script to help compile a toolchain. So far it's only been tested on Ubuntu but there's nothing ubuntu specific so that should work just fine on any Linux.

For an extensive write-up about cross compiling Rust programs see:

Mac OS X

Cross compiling on Mac hasn't been documented. A PR is welcomed. 😉

Notes for Mac OS X

You'll need some dependencies installed to build.

$ brew install openssl

This is required to build the openssl crate using homebrew's openssl:

$ export DEP_OPENSSL_INCLUDE=/usr/local/opt/openssl/include/
$ export OPENSSL_INCLUDE_DIR=/usr/local/Cellar/openssl/1.0.2f/include/

About

The FoxBox daemon

License:Mozilla Public License 2.0


Languages

Language:Rust 81.2%Language:JavaScript 15.0%Language:HTML 3.8%