#slice #abi #interfacing #stable #cc #conversion #c-mut-slice

cslice

一个用于与 C 进行交互的具有稳定 ABI 的切片库

4 个版本 (2 个破坏性版本)

使用旧的 Rust 2015

0.3.0 2017 年 2 月 1 日
0.2.0 2017 年 2 月 1 日
0.1.1 2016 年 5 月 11 日
0.1.0 2016 年 4 月 5 日

#2877Rust 模式

Download history 1259/week @ 2024-04-03 1295/week @ 2024-04-10 1303/week @ 2024-04-17 1324/week @ 2024-04-24 1242/week @ 2024-05-01 1151/week @ 2024-05-08 1593/week @ 2024-05-15 1147/week @ 2024-05-22 1189/week @ 2024-05-29 998/week @ 2024-06-05 997/week @ 2024-06-12 1378/week @ 2024-06-19 1386/week @ 2024-06-26 840/week @ 2024-07-03 1016/week @ 2024-07-10 1014/week @ 2024-07-17

4,590 每月下载量
8 个 crate 中使用(通过 helix_runtime

MIT/Apache

7KB
138

CSlice

本库提供类似 Rust 切片的 API,但具有保证的 ABI,以便与 C/C++ 进行交互。


lib.rs:

一组 C-slices:具有稳定 ABI 的切片,以便与 C 进行交互。

本库提供了两种类型,CSliceCMutSlice,用于与 C 通信有关 Rust 切片或类似切片的外部数据结构。这两种类型都具有由正好两个指针大小的单词组成的稳定 ABI

struct {
    void *base;
    size_t len;
}

C-slices 和 Rust 切片可以互换,双向具有转换方法。

这使得可以从外部代码构造切片,以及方便地将 Rust 切片传达给外部代码。

无运行时依赖