#osstr #osstring #path #bytes #windows

os_str_bytes

Traits for converting between byte sequences and platform-native strings

18 releases (11 stable)

✓ Uses Rust 2018 edition

2.3.1 May 12, 2020
2.2.0 Apr 27, 2020
1.1.0 Apr 9, 2020
1.0.3 Mar 26, 2020
0.1.1 Nov 30, 2019

#13 in FFI

Download history 31/week @ 2020-03-12 41/week @ 2020-03-19 62/week @ 2020-03-26 99/week @ 2020-04-02 91/week @ 2020-04-09 190/week @ 2020-04-16 1781/week @ 2020-04-23 2668/week @ 2020-04-30 3282/week @ 2020-05-07 3823/week @ 2020-05-14 3881/week @ 2020-05-21 4765/week @ 2020-05-28 6175/week @ 2020-06-04 4686/week @ 2020-06-11 6883/week @ 2020-06-18 7093/week @ 2020-06-25

2,395 downloads per month
Used in 69 crates (6 directly)

MIT/Apache

37KB
613 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.3"

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
redox 1.32.0
unix 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