8 个版本 (4 个重大变更)
| 0.5.0 | 2022 年 1 月 25 日 |
|---|---|
| 0.4.0 | 2022 年 1 月 14 日 |
| 0.3.3 | 2022 年 1 月 9 日 |
| 0.3.2 | 2021 年 12 月 22 日 |
| 0.1.0 | 2021 年 11 月 7 日 |
在 文件系统 中排名 1280
每月下载 24 次
在 nstd_audio 中使用
29KB
494 代码行
关于
NSTD 是一个旨在跨平台的库,相当安全(任何可能失败的函数都将返回一个错误代码,指示它是否成功),同时具有丰富的功能和功能。目标是有一个适用于任何平台、任何语言和任何用例的 API。
平台支持
core 模块可以在 任何地方 使用。它不依赖于 任何 其他库,包括标准库(除了头文件 stddef.h 和 stdint.h)。其他模块在 大多数 平台上运行,并且已经过测试,可以用于 Windows、macOS、Linux 和 Redox。
模块概述
nstd- 基于 CFFI 的跨平台库。alloc- 堆分配。allocator- 自定义 vtable 结构的内存分配。heap- 类似于 Rust 的 Box。
audio- 音频 I/O。def- 常用的音频相关类型。device- 音频 I/O 设备句柄。host- 平台的音频主机。player- 音频播放器。queue- 音频流队列。stream- 音频 I/O 流。
collections- 集合类型。bit_mask- 具有小型内存占用的可自定义位掩码。rc- 通过引用计数器的共享内存。stack- 可增长和缩小的堆栈数组类型。
core- 包含不需要操作系统的模块。char_types- 特定于字符类型的函数。cstr- C 字符串检查。def- 常用 typedef。float_types- 特定于浮点类型的函数。int_types- 特定于整型的函数。math- 低级数学。platform- 平台识别。pointer- 指针类型。range- 范围类型。slice- 内存视图。str- UTF-8 字符串切片类型。
env- 环境特定功能与标识。events- 事件循环。def- 事件系统使用的常用类型。device_id- 用于识别设备的类型。window_id- 用于识别窗口的类型。
fs- 文件系统。file- 文件 I/O。
gl- 低级图形库。buffer- GPU VRAM 缓冲区。command- 设备命令。buffer- GPU 命令缓冲区。encoder- GPU 命令编码器。
def- 常用图形相关类型。device- 用于处理图形设备的模块。handle- 图形设备的句柄。info- 图形设备的信息。
instance-wgpu的实例。render- 渲染。pass- 包含用于处理渲染传递的函数。pipeline- 渲染管线。
shader- GPU 着色器程序。module- 着色器模块。
state- 图形库的状态机。surface- 与显示表面的交互。config- 表面的配置。texture- 表面纹理。
texture- 用于处理纹理的模块。format- 纹理的数据格式。view- 纹理视图。
gui- 图形用户界面库。display- 显示/监视器的句柄。window- 窗口和表单。
image- 原始图像数据 I/O。input- 键盘/鼠标输入。key- 键盘类型。mouse- 鼠标类型。
io- 标准I/O。input_stream- 输入流类型。io_stream- 输入和输出的流类型。output_stream- 输出流类型。stderr- 标准错误流。stdin- 标准输入流。stdout- 标准输出流。stream- 基础流类型。
math- 高级数学。net- 网络通信。tcp- TCP 网络通信。udp- UDP 网络通信。
os- 操作系统特定功能。linux- Linux 的 OS 支持。alloc- Linux 的低级内存分配。
windows- Windows 的 OS 支持。alloc- Windows 的低级内存分配。heap- Windows 堆管理。
def- 常用 Windows 类型定义。io- Windows 标准I/O。thread- Windows 的线程支持。
proc- 进程管理。rand- 随机值生成。string- 动态大小的UTF-8编码字符串。thread- 线程API。time- 获取系统时间的库。vec- 一个动态大小的数组。
如何构建
cargo build --release --features ""
在“--features”之后,在引号内,您可以用空格分隔每个模块,并以前缀“nstd_”开头,尽管nstd_os模块略有不同,并且有自己的特性,如nstd_os_alloc,可以单独启用,nstd_os不是必需的。nstd_core默认构建。如果要构建nstd作为C库,您还应该使用“clib”特性,以构建适用于C ABI的模块。
示例
cargo build --release --features "clib nstd_alloc nstd_os nstd_os_io nstd_string"
或者您也可以使用
cargo build --release --all-features
来构建所有模块。
依赖关系
~0.3–25MB
~321K SLoC