From 6010ae96b5d49ecbb663eb575bf334038036a36b Mon Sep 17 00:00:00 2001 From: haotuo <380743811@qq.com> Date: Mon, 24 Apr 2023 17:49:08 +0800 Subject: [PATCH] Add oh usage guide Issue:#I6YAO1 Signed-off-by: haotuo --- README_zh.md | 98 ++++++++-------------------------------------------- 1 file changed, 15 insertions(+), 83 deletions(-) diff --git a/README_zh.md b/README_zh.md index 50169fa..6cb51de 100644 --- a/README_zh.md +++ b/README_zh.md @@ -5,20 +5,10 @@ [Documentation (Releases)](https://docs.rs/nix/) -Nix试图为各种*nix平台的API提供友好的绑定(Linux、Darwin、 -...). 我们的目标不是提供一个100%统一的接口,而是统一 -同时仍然提供平台特定的API。 +Nix试图为各种*nix平台的API提供友好的绑定(Linux、Darwin、...)。对于许多系统API,Nix提供了一个安全的替代方案,以取代[libc crate](https://github.com/rust-lang/libc)所暴露的不安全API。 具体做法是用类型/抽象来包装libc的功能,强制执行合法、安全的使用。 -对于许多系统API,Nix提供了一个安全的替代方案,以取代[libc crate]暴露的不安全的API。 -[libc crate](https://github.com/rust-lang/libc)所暴露的不安全API。 具体做法是 -用类型/抽象来包装libc的功能,强制执行合法/安全的 -使用。 - - -作为Nix提供的一个例子,检查一下 -的不同之处。 -[gethostname](https://man7.org/linux/man-pages/man2/gethostname.2.html) 系统调用的区别 -调用: +Nix提供一个例子对比与libc系统调用的区别 +[gethostname](https://man7.org/linux/man-pages/man2/gethostname.2.html): ```rust,ignore // libc api (unsafe, requires handling return code/errno) @@ -27,78 +17,20 @@ pub unsafe extern fn gethostname(name: *mut c_char, len: size_t) -> c_int; // nix api (returns a nix::Result) pub fn gethostname() -> Result; ``` +## 使用 +在"BUILD.gn"中使用deps字段添加对num-traits的crates的依赖,例如: -## 支持的平台 +```BUILD.gn +ohos_rust_shared_library("foo") { + source = [ "src/lib.rs" ] + deps = [ "//third_party/rust/crates/nix:lib" ] +} +``` -nix的目标支持由两层组成。虽然 nix 试图支持所有 -[libc](https://github.com/rust-lang/libc)所支持的所有平台,但由于技术或人力原因,只有一些 -由于技术或人力的限制,只有部分平台被积极支持。对平台的支持分为三个层级: +## Minimum Supported Rust Version (MSRV) - * 第1层 - 该目标的构建和测试在CI中运行。如果其中任何一个失败 - 阻止新代码的加入。 - * 第2层--该目标的构建在CI中运行。在构建过程中出现的故障 - 阻止了新代码的加入。测试可以被运行,但测试中的失败 - 但测试中的失败不会阻止新代码的加入。 - * 第3层 - 该目标的构建在CI中运行。构建过程中的失败 - *不*阻碍新代码的加入。测试可以被运行,但 - 测试中的失败不会阻止新代码的加入。 +nix在Rust 1.56.1及更高版本上得到支持。 -以下目标由 "nix "支持: +## License -第1层: - * aarch64-apple-darwin - * aarch64-unknown-linux-gnu - * arm-unknown-linux-gnueabi - * armv7-unknown-linux-gnueabihf - * i686-unknown-freebsd - * i686-unknown-linux-gnu - * i686-unknown-linux-musl - * mips-unknown-linux-gnu - * mips64-unknown-linux-gnuabi64 - * mips64el-unknown-linux-gnuabi64 - * mipsel-unknown-linux-gnu - * powerpc64le-unknown-linux-gnu - * x86_64-unknown-freebsd - * x86_64-unknown-linux-gnu - * x86_64-unknown-linux-musl - -第2层: - * aarch64-apple-ios - * aarch64-linux-android - * arm-linux-androideabi - * arm-unknown-linux-musleabi - * armv7-linux-androideabi - * i686-linux-android - * powerpc-unknown-linux-gnu - * s390x-unknown-linux-gnu - * x86_64-apple-ios - * x86_64-linux-android - * x86_64-apple-darwin - * x86_64-unknown-illumos - * x86_64-unknown-netbsd - -第3层: - * armv7-unknown-linux-uclibceabihf - * x86_64-fuchsia - * x86_64-unknown-dragonfly - * x86_64-unknown-haiku - * x86_64-unknown-linux-gnux32 - * x86_64-unknown-openbsd - * x86_64-unknown-redox - -## 最低支持的Rust版本(MSRV) - -nix在Rust 1.56.1及更高版本上得到支持。 它的MSRV将不会 -它的MSRV在未来不会被改变而不需要增加主版本或次版本。 - -## 贡献 - -我们非常欢迎投稿。 请参见 [CONTRIBUTING](CONTRIBUTING.md) 了解更多细节。 -更多细节。 - -欢迎加入我们在Gitter上的[nix-rust/nix](https://gitter.im/nix-rust/nix)频道,以便 -讨论 "nix "开发。 - -## 许可 - -Nix在MIT许可下被授权。 更多细节见[LICENSE](LICENSE)。 +Nix使用MIT License。 更多细节见[LICENSE](LICENSE)。