# Genie-sys
A rust binding for [Genie](https://github.com/MueFab/genie) (A Open Source MPEG-G Codec).
## Goal
This crate aims to provide application programing interface (API) for C++ implementation of [Genie](https://github.com/MueFab/genie).
## Quick Example Usage
```Rust
use genie_sys::*;
fn main() {
let file = concat!(env!("OUT_DIR"), "/genie/data/fastq/simplest.fastq").to_string();
let ofile = "output.mgrec".to_string();
unsafe { geniesys::convert_fastq(file, ofile, 1) };
}
```
+ More example use cases in [tests](./tests/) folder.
## APIs
### Transcoding
+ [x] convert_fastq
+ [x] convert_mgrec
+ [ ] convert_fasta
### Nucleotide Encoding
TODO:
### Sequence Transformation
TODO:
## Genie Core API
Could be enabled by adding feature `core_capi`.
> [!WARNING] Limitation
>
> C++ API will be supported when `autocxx` could resolve
> issue with Apple C++ headers >= 16. ([#1396](https://github.com/google/autocxx/issues/1396))
## Contact
Sengrith PROM <psengrith@gmail.com>