oca-rust 0.1.23

Rust implementation of Overlays Capture Architecture
Documentation
# [![Rust Build Status]][Rust actions] [![Cargo version]][crates.io] [![WASM Build Status]][WASM actions] [![NPM version]][npmjs.com]

[Rust Build Status]: https://github.com/THCLab/oca-rust/actions/workflows/rust.yml/badge.svg?branch=main
[Rust actions]: https://github.com/THCLab/oca-rust/actions/workflows/rust.yml
[Cargo version]: https://img.shields.io/crates/v/oca-rust
[crates.io]: https://crates.io/crates/oca-rust
[WASM Build Status]: https://github.com/THCLab/oca-rust/actions/workflows/wasm.yml/badge.svg?branch=main
[WASM actions]: https://github.com/THCLab/oca-rust/actions/workflows/wasm.yml
[NPM version]: https://img.shields.io/npm/v/oca.js
[npmjs.com]: https://www.npmjs.com/package/oca.js
[Crates.io actions]: https://github.com/THCLab/oca-rust/actions/workflows/create.yml
[npmjs.com actions]: https://github.com/THCLab/oca-rust/actions/workflows/npm-publish.yml

[parser.bin release]: https://github.com/THCLab/oca-rust/releases/latest/download/parser.bin
[parser.exe release]: https://github.com/THCLab/oca-rust/releases/latest/download/parser.exe

# Rust implementation of Overlays Capture architecture

OCA is a standardized global solution for data capture and exchange which
protects PII data and provides a positive alternative to current architectures.
See more on: <https://oca.colossi.network/>

# Documentation

- [OCA Spec]https://the-human-colossus-foundation.github.io/oca-spec/
- [API reference (docs.rs)]https://docs.rs/oca-rust


# Usage

#### Command line parser

Download [bin for linux][parser.bin release] or [exe for windows][parser.exe release]

#### In cargo package

Add this to your `Cargo.toml`:

```toml
[dependencies]
oca-rust = "0.1.23"
```

### Build

Building local package with command line app and XLS parser:  
`cargo build --features command_line,xls_parser`

### Run [tests]tests

`cargo test --all-features`

## WASM bindings

### Build

Building local NPM package  
`wasm-pack build bindings/wasm -t nodejs -d pkg-node`  

### Run [tests]bindings/wasm/js/test

Go to bindings/wasm/js directory and install dependencies  

```
yarn install
yarn test
```

## Releasing new version

`cargo release`  
bumps version and runs `git push` with `v{version}` tag added.
That triggers actions on github
([Crates.io][Crates.io actions] and [npmjs.com][npmjs.com actions])
which build and publish packages on [crates.io][crates.io] and [npmjs.com][npmjs.com].