#字符串字面量 #字符串 #c-str #c-strings #ffi #c #char

字节字符串

Rust 字节字符串操作,用于更好的、更安全的 C FFI

8 个版本

0.3.1 2023年6月12日
0.3.0 2023年6月12日
0.2.2 2021年12月10日
0.2.1 2021年10月28日
0.1.3 2019年2月20日

#579 in Rust 模式

Download history 1591/week @ 2024-04-22 1817/week @ 2024-04-29 1057/week @ 2024-05-06 869/week @ 2024-05-13 1408/week @ 2024-05-20 1179/week @ 2024-05-27 1167/week @ 2024-06-03 1297/week @ 2024-06-10 887/week @ 2024-06-17 1310/week @ 2024-06-24 669/week @ 2024-07-01 1291/week @ 2024-07-08 1188/week @ 2024-07-15 1249/week @ 2024-07-22 1152/week @ 2024-07-29 845/week @ 2024-08-05

4,451 monthly downloads
用于 14 个 crate (10 直接)

Zlib OR MIT OR Apache-2.0

16KB
238

::byte-strings

Rust 零成本字节字符串操作,用于更好的、更安全的 FFI

Repository Latest version Documentation MSRV License CI

示例

包含 c_str! 宏来创建具有零运行时成本的 有效的 C 字符串字面量

#[macro_use]
extern crate byte_strings;

/// Some lib
mod safe {
    use ::std::{
        ffi::CStr,
        os::raw::{c_char, c_int},
    };

    /// private unsafe C FFI
    mod ffi {
        use super::*;

        extern "C" {
            pub
            fn puts (_: *const c_char)
              -> c_int
            ;
        }
    }

    /// lib API: safe Rust wrapper => uses `CStr`
    pub
    fn puts (message: &'_ CStr)
      -> i32
    {
        unsafe {
            ffi::puts(message.as_ptr()) as i32
        }
    }
}

fn main ()
{
    safe::puts(c!("Hello, World!"));
}

依赖项

~270–720KB
~17K SLoC