C-Style UTF-8 Strings for Rust
This project makes it easier to establish guarantees when interfacing with C APIs that require passing around UTF-8 encoded strings.
What is UTF-8?
UTF-8 is the character encoding chosen by much of the programming community
since 2008, including Rust with its str
primitive.
UTF-8 is capable of representing all 1,112,064 code points of the Unicode standard. Code points are variable-width, ranging from 8 to 32 bits wide.
Where does UTF-8 appear in C?
UTF-8 in SDL
The Simple DirectMedia Layer (SDL) library exposes certain APIs that only interface with UTF-8 encoded C strings. Here's a potential wrapper one could create around SDL:
Creating a &CUtf8
instance to interface with the above code can be done easily
via the c_utf8!
macro:
window.set_title;
Installation
This crate is available on crates.io and can be used by adding the
following to your project's Cargo.toml
:
[]
= "0.1.0"
and this to your crate root (lib.rs
or main.rs
):
extern crate c_utf8;
License
This project is licensed under either of
-
Apache License, Version 2.0 (
LICENSE-APACHE
or http://www.apache.org/licenses/LICENSE-2.0) -
MIT License (
LICENSE-MIT
or http://opensource.org/licenses/MIT)
at your option.