#bytes #osstr #osstring #path #windows

os_str_bytes

Traits for converting between byte sequences and platform-native strings

20 releases (13 stable)

2.4.0 Nov 6, 2020
2.3.1 May 12, 2020
1.1.0 Apr 9, 2020
1.0.3 Mar 26, 2020
0.1.1 Nov 30, 2019

#8 in FFI

Download history 9346/week @ 2020-08-13 12339/week @ 2020-08-20 10689/week @ 2020-08-27 10133/week @ 2020-09-03 12680/week @ 2020-09-10 10146/week @ 2020-09-17 13134/week @ 2020-09-24 13680/week @ 2020-10-01 15253/week @ 2020-10-08 15425/week @ 2020-10-15 14731/week @ 2020-10-22 18764/week @ 2020-10-29 18531/week @ 2020-11-05 17608/week @ 2020-11-12 21154/week @ 2020-11-19 17895/week @ 2020-11-26

54,810 downloads per month
Used in 287 crates (9 directly)

MIT/Apache

39KB
673 lines

OsStr Bytes

This crate allows interacting with the data stored internally by OsStr and OsString, without resorting to panics or corruption for invalid UTF-8. Thus, methods can be used that are already defined on [u8] and Vec<u8>.

Typically, the only way to losslessly construct OsStr or OsString from a byte sequence is to use OsStr::new(str::from_utf8(bytes)?), which requires the bytes to be valid in UTF-8. However, since this crate makes conversions directly between the platform encoding and raw bytes, even some strings invalid in UTF-8 can be converted.

GitHub Build Status

Usage

Add the following lines to your "Cargo.toml" file:

[dependencies]
os_str_bytes = "2.4"

See the documentation for available functionality and examples.

Rust version support

The minimum supported Rust toolchain version depends on the platform:

target_os Minimum Version
emscripten (wasm32) 1.32.0
redox 1.32.0
unix 1.32.0
unknown (wasm32) 1.32.0
wasi 1.35.0 (all versions)
windows 1.32.0

License

Licensing terms are specified in COPYRIGHT.

Unless you explicitly state otherwise, any contribution submitted for inclusion in this crate, as defined in LICENSE-APACHE, shall be licensed according to COPYRIGHT, without any additional terms or conditions.

No runtime deps