libnewton 2.0.0-beta

libnewton, a library for interacting with Prism
Documentation
# 🪐 libnewton
A library for interacting with Prism 🌈
> Visit https://github.com/taleroangel/prism for more information about the **Prism Project**

This repository contains most of the implementation of the _[Prism](https://github.com/taleroangel/prism)_ protocol with all the numeric constants defined inside _protobuf_ files in order to make porting to many programming languages easier

## ✒️ List of supported programming languages

Current implemented languages and stages:

| Language | Status |
| -------- | ------ |
| Protobuf | 🟢      |
| Rust     | 🟢      |

### ✴️ Base (protobuf)
The base implementtion of libnewton (constants names and values like the _InstructionSet_, _Registers_ and _AddressingMode_) are defined in a set of protobuf files found in the [protobuf](./protobuf/) directory, this is the base from which new libraries should be built upon and can be a direct dependency

### 🦀 Rust
The rust library depends on the **[protoc-gen-prost](https://crates.io/crates/protoc-gen-prost)** crate for generating the protobuf base files rust implementation. These files are commited to source control but can be recompiled using the following command invoked from parent directory:

    protoc -I ./protobuf --prost_out=rust/src/proto ./protobuf/*.proto


## 🔭 Newton
Newton is the name given to the _Prism Instruction Interpreter_ therefore a _Newton Interpreter_ is required in every slave device. Instructions are interpreted in _Prism Binary Format_ which can be assembled from a _Prism Assembly Language_ using this library