#utf-16 #utf-32 #wide #winapi

no-std widestring

A wide string Rust library for converting to and from wide strings, such as those often used in Windows API or other FFI libaries. Both u16 and u32 string types are provided, including support for UTF-16 and UTF-32, malformed encoding, C-style strings, etc.

14 releases (3 stable)

1.0.2 Jul 15, 2022
1.0.0-beta.1 Nov 8, 2021
0.5.1 Oct 23, 2021
0.4.3 Oct 5, 2020
0.1.0 Jan 25, 2016

#25 in Text processing

Download history 181477/week @ 2023-11-18 208679/week @ 2023-11-25 228875/week @ 2023-12-02 196757/week @ 2023-12-09 197967/week @ 2023-12-16 91960/week @ 2023-12-23 160357/week @ 2023-12-30 209704/week @ 2024-01-06 222653/week @ 2024-01-13 240174/week @ 2024-01-20 222115/week @ 2024-01-27 244837/week @ 2024-02-03 239315/week @ 2024-02-10 216628/week @ 2024-02-17 244929/week @ 2024-02-24 240071/week @ 2024-03-02

989,865 downloads per month
Used in 2,221 crates (172 directly)

MIT/Apache

515KB
6.5K SLoC

widestring

Crates.io Documentation Crates.io Build status

A wide string Rust library for converting to and from wide strings, such as those often used in Windows API or other FFI libaries. Both u16 and u32 string types are provided, including support for UTF-16 and UTF-32, malformed encoding, C-style strings, etc.

Macros for converting string literals to UTF-16 and UTF-32 strings at compile time are also included.

Requires Rust 1.58 or greater. If you need support for older versions of Rust, use 0.x versions of this crate.

Documentation

Optional Features

  • alloc - Enabled by default. Enable use of the alloc crate when not using the std library.

    This enables the owned string types and aliases.

  • std - Enabled by default. Enable features that depend on the Rust std library, including everything in the alloc feature.

License

This library is distributed under the terms of either of:

at your option.

This project is REUSE-compliant. Copyrights are retained by their contributors. Some files may include explicit copyright notices and/or license SPDX identifiers. For full authorship information, see the version control history.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps