#utf-16 #utf-32 #wide #winapi #string #string-literal #compile-time

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.

15 releases (4 stable)

1.1.0 Apr 6, 2024
1.0.2 Jul 15, 2022
1.0.1 Jun 24, 2022
1.0.0-beta.1 Nov 8, 2021
0.1.0 Jan 25, 2016

#14 in Text processing

Download history 294302/week @ 2024-07-19 303331/week @ 2024-07-26 287401/week @ 2024-08-02 328793/week @ 2024-08-09 326385/week @ 2024-08-16 347654/week @ 2024-08-23 316525/week @ 2024-08-30 355936/week @ 2024-09-06 304361/week @ 2024-09-13 372235/week @ 2024-09-20 362019/week @ 2024-09-27 398862/week @ 2024-10-04 386925/week @ 2024-10-11 405448/week @ 2024-10-18 435087/week @ 2024-10-25 391754/week @ 2024-11-01

1,699,102 downloads per month
Used in 2,813 crates (187 directly)

MIT/Apache

525KB
7K 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.

  • debugger_visualizer Add debugger visualizer data for crate types. Requires Rust 1.71 or newer

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