Skip to content

juzi5201314/rcnb-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rcnb-rs

Node.js CI Rayon crate Rayon documentation

The world is based on RC. Thus, everything can be encoded into RCNB.

RCNB is available in various languages: Rust JavaScript C PHP Pascal (more..)

Why RCNB?

RCNB vs Base64

Base64 RCNB
Speed ❌ Fast ✔️ Slow, motivate Intel to improve their CPU
Printable ❌ On all OS ✔️ Only on newer OS, motivate users to upgrade their legacy OS
Niubility ❌ Not at all ✔️ RCNB!
Example QmFzZTY0Lg== ȐĉņþƦȻƝƃŔć

Install

Use Wapm (with Wasmer)

package: soeur/rcnb-rs

online playground

$ wapm install soeur/rcnb-rs

Use Cargo

$ cargo install rcnb-rs

From source

$ cargo build --release
// look ./target/release

From source (to wasi)

$ rustup target add wasm32-wasi
$ cargo build --release --target=wasm32-wasi
// look ./target/wasm32-wasi/release

Usage

In code

use rcnb_rs::{decode, encode};

fn main() {
    let content = "rcnb";
    let encoded = encode(content);
    let decoded = decode(&encoded);

    assert_eq!(content, decoded);
}

Cli

$ rcnb-rs --help
Usage: rcnb-rs [<content>] [-d] [-e]

RCNB!

Options:
  -d, --decode      decode
  -e, --encode      encode
  --help            display usage information

Use wapm

$ wapm run rcnb-rs -- --help

Example

Encode
$ rcnb-rs rcnb!
ɌcńƁȓČņÞŔć
Decode
$ rcnb-rs -d ɌcńƁȓČņÞŔć
rcnb!
Reads from stdin
$ cat test.txt | rcnb-rs
or
$ rcnb-rs <test.txt

Performance

See here

test rcnb_decode_100kib ... bench:   2,966,972 ns/iter (+/- 12,700) = 129 MB/s
test rcnb_decode_10kib  ... bench:     287,475 ns/iter (+/- 2,267) = 134 MB/s
test rcnb_decode_1b     ... bench:          22 ns/iter (+/- 0) = 181 MB/s
test rcnb_decode_1kib   ... bench:      13,393 ns/iter (+/- 171) = 287 MB/s
test rcnb_decode_1mib   ... bench:  31,528,558 ns/iter (+/- 1,043,871) = 125 MB/s

test rcnb_encode_100kib ... bench:   1,324,899 ns/iter (+/- 10,162) = 77 MB/s
test rcnb_encode_10kib  ... bench:     130,809 ns/iter (+/- 418) = 78 MB/s
test rcnb_encode_1b     ... bench:          16 ns/iter (+/- 0) = 62 MB/s
test rcnb_encode_1kib   ... bench:      12,705 ns/iter (+/- 73) = 80 MB/s
test rcnb_encode_1mib   ... bench:  13,942,205 ns/iter (+/- 436,349) = 75 MB/s

About

Everything can be encoded into RCNB with Rust.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages