#unix #coreutils #abstraction #safe-abstraction #process #user #module

coreutils_core

一个用于实现UNIX核心工具抽象的crate

3个版本

0.1.2 2024年7月2日
0.1.1 2020年3月18日
0.1.0 2020年3月18日

#232 in Unix APIs

Download history 260/week @ 2024-04-26 401/week @ 2024-05-03 538/week @ 2024-05-10 629/week @ 2024-05-17 424/week @ 2024-05-24 459/week @ 2024-05-31 504/week @ 2024-06-07 107/week @ 2024-06-14 214/week @ 2024-06-21 572/week @ 2024-06-28 51/week @ 2024-07-05 186/week @ 2024-07-12 254/week @ 2024-07-19 175/week @ 2024-07-26 328/week @ 2024-08-02 594/week @ 2024-08-09

1,390 每月下载量

MPL-2.0-no-copyleft-exception

140KB
3K SLoC

Coreutils Core

GitHub license

这是一个由Rust编程语言实现的coreutils核心工具的库。

可以将其视为创建coreutils工具的crate。

这里包含了一些对项目支持的操作系统中的Unix/Unix-like结构的抽象。

  • 备份模块,用于创建备份
  • 输入模块,用于获取用户确认
  • mktemp:对libc的mkstemp(3)和mkdtemp(3)的包装
  • mkfifo:对libc的mkfifo(3)的包装,可能还会扩展其他FIFO相关函数
  • OS模块,包含对更多操作系统特定内容的抽象
    • FreeBSD和MacOS的审计结构和系统调用
    • group:包含处理组信息的结构和方法的模块
    • load:对系统功能获取系统负载的可靠抽象
    • login_name:对系统功能获取调用者登录名的可靠抽象
    • passwd:包含处理系统用户信息的结构和方法的模块
    • process:与进程处理相关的可靠抽象
    • routing_table:OpenBSD的路由表抽象
    • time:处理系统时间(设置系统时间)的操作系统功能
    • tty:检查文件描述符是否为TTY以及获取TTY名称的抽象
    • utmp和utmpx:表示Unix账户数据库的类型以及使用它们的方法
    • utsname:获取系统信息的数据类型

它还导出了来自bstrtimelibc的主要所需内容,其中bstr是一个为Rust提供的字符串类型crate,不需要是有效的UTF-8,以及time和libc

许可协议

本源代码形式受Mozilla公共许可证第2.0版的条款约束。如果此文件未附带Mozilla公共许可证(MPL)副本,您可以在http://mozilla.org/MPL/2.0/获取一份。

根据Mozilla公共许可证第2.0版的规定,本源代码形式“与二级许可证不兼容”。

依赖项

~6MB
~115K SLoC