# ctru-rs

A Rust wrapper library for smealum's [ctrulib](https://github.com/smealum/ctrulib).

## Structure

This repository is organized as follows:

* `ctru-rs`: Safe, idiomatic wrapper around `ctru-sys`

* `ctru-sys`: Low-level, unsafe bindings to ctrulib.

  This crate's version changes according to the version of `libctru`
  used to generate the bindings, with the following convention:

  * `libctru` version `X.Y.Z-W`
  * `ctru-sys` version `XY.Z.P+X.Y.Z-W`

  where `P` is usually 0 but may be incremented for fixes in e.g.
  binding generation, `libc` dependency bump, etc.

  It may be possible to build this crate against a different version of `libctru`,
  but you may encounter linker errors or ABI issues. A build-time Cargo warning
  (displayed when built with `-vv`) will be issued if the build script detects
  a mismatch or is unable to check the installed `libctru` version.

## Original version

This project is based on the efforts the original authors:
 * [Eidolon](https://github.com/HybridEidolon)
 * [FenrirWolf](https://github.com/FenrirWolf)

The old version is archived [here](https://github.com/rust3ds/ctru-rs-old).