# rb-sys

[![Join the discussion](https://img.shields.io/badge/slack-chat-blue.svg)](https://join.slack.com/t/oxidize-rb/shared_invite/zt-16zv5tqte-Vi7WfzxCesdo2TqF_RYBCw)

Autogenerated Rust bindings for Ruby. Uses the [`rust-bindgen`](https://github.com/rust-lang/rust-bindgen) crate to
generate bindings from the `ruby.h` header.

## Notice

This is a very low-level library. If you are looking to write a gem in Rust, you should probably use
https://github.com/matsadler/magnus crate, with the `rb-sys-interop` feature.

If you actually _need_ raw/unsafe bindings to libruby, then this crate is for you!

## Documentation

For comprehensive documentation, please refer to the [Ruby on Rust Book](https://oxidize-rb.github.io/rb-sys/), which
includes:

- [API Reference for rb-sys Features](https://oxidize-rb.github.io/rb-sys/api-reference/rb-sys-features.html)
- [Usage examples and tutorials](https://oxidize-rb.github.io/rb-sys/introduction.html)
- [Memory management guidance](https://oxidize-rb.github.io/rb-sys/memory-management.html)

## License

Licensed under either of

- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as
defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
