6 releases (3 breaking)

0.4.1 Jul 17, 2024
0.4.0 Jun 25, 2024
0.3.0 Feb 19, 2024
0.2.0 Jan 19, 2023
0.1.1 Jan 17, 2023

#47 in Windows APIs

Apache-2.0 OR MIT

87KB
1.5K SLoC

DirectStorage for Rust

Documentation Crates.io License: Apache 2.0

This crates implements windows-rs compatible bindings for the DirectStorage API.

We try to provide the same abstraction level and coding style as windows-rs.

Requirements

Because of licensing issues we can't provide the shared libraries that are used by DirectStorage. You need to download them yourself and put them in the working directory of your project, or in places windows is searching for the library as documented:

  1. Download the correct version of DirectStorage from nuget.org.
  2. Extract the package file (.nupkg files are just .zip files).
  3. Copy the ".dll" files from the folder for you architecture (under \native\bin).
  4. Copy the ".lib" file from the folder for your architecture (under \native\lib)
  5. Place the dstorage.dll, dstoragecore.dll and dstorage.lib files into the working directory of your project.

Version

This crate currently targets DirectStorage version 1.2.2. How long we will support older versions is not clear yet, but we may support older version with feature toggles if the need arises.

Examples

We ported some examples from the DirectStorage Repository to Rust.

They can be found in the examples folder and are licensed under MIT.

License

This crate is licensed under either of

at your option.

Please be aware that DirectStorage itself is licensed under a proprietary license by Microsoft, which you can find alongside the binary distribution of the shared library.

Contribution

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.

Disclaimer

This is not an official Microsoft product (experimental or otherwise). This crate is not endorsed or supported by Microsoft in any way.

Dependencies

~128MB
~2M SLoC