|
1 | 1 | # wslpluginapi-sys |
2 | 2 |
|
3 | | -[](https://crates.io/crates/wslpluginapi-sys) |
4 | | -[](https://docs.rs/wslpluginapi-sys) |
5 | | -[](https://github.com/mveril/wslpluginapi-sys/actions) |
6 | | -[](LICENSE) |
7 | | -[](https://www.nuget.org/packages/Microsoft.WSL.PluginApi/2.1.3) |
| 3 | +[](https://crates.io/crates/wslpluginapi-sys) |
| 4 | +[](https://docs.rs/wslpluginapi-sys) |
| 5 | +[](https://github.com/mveril/wslpluginapi-sys/actions) |
| 6 | +[](LICENSE) |
| 7 | +[](https://www.nuget.org/packages/Microsoft.WSL.PluginApi/2.4.4) |
8 | 8 | [](#) |
9 | 9 |
|
10 | 10 | `wslpluginapi-sys` is a Rust crate that provides low-level bindings to the Windows Subsystem for Linux (WSL) Plugin API. It offers a direct interface to the functions and structures defined in the WSL Plugin API, facilitating the development of WSL plugins in Rust. |
11 | 11 |
|
12 | 12 | ## Features |
13 | 13 |
|
14 | | -- **Comprehensive Bindings**: Provides complete bindings to the WSL Plugin API, including structures like `GUID` and other essential components. |
| 14 | +- **Comprehensive Bindings**: Provides complete bindings to the WSL Plugin API, including structures like `WSLPluginAPIV1` or `WSLPluginHooksV1` and other essential components. |
15 | 15 | - **Unsafe Abstractions**: Direct, unsafe bindings closely mirroring the original C API for maximum control and flexibility. |
16 | 16 |
|
17 | 17 | ## Prerequisites |
18 | 18 |
|
19 | 19 | Before using `wslpluginapi-sys`, ensure you have the following installed: |
20 | 20 |
|
21 | 21 | - **Rust**: Latest stable version. |
22 | | -- **Nuget**: require nuget cli in the Path or use the `no-nuget` feature to manage the nuget packages via reqwest and zip (useful if nuget is not installed or on non windows environement). |
| 22 | + |
| 23 | +### Optional |
| 24 | + |
| 25 | +- **NuGet**: Use the NuGet CLI in the xtask nuget process to download NuGet (if not present, we use reqwest to do this process). |
23 | 26 |
|
24 | 27 | ## Installation |
25 | 28 |
|
26 | 29 | Add `wslpluginapi-sys` to your `Cargo.toml`: |
27 | 30 |
|
28 | 31 | ```toml |
29 | 32 | [dependencies] |
30 | | -wslpluginapi-sys = "0.1.0-beta.3+2.1.3" |
| 33 | +wslpluginapi-sys = "0.1.0-beta.4+2.4.4" |
31 | 34 | ``` |
32 | 35 |
|
33 | | -Safety |
| 36 | +## Safety |
| 37 | + |
34 | 38 | This crate provides unsafe bindings that closely follow the original C API. Users must ensure they uphold the necessary safety invariants when interacting with these bindings. Proper handling of pointers, memory management, and adherence to the API's expected usage patterns are crucial. |
35 | 39 |
|
36 | | -License |
| 40 | +## NuGet package dependency |
| 41 | + |
| 42 | +This project depends on a third-party dependency called [Microsoft.WSL.PluginApi](https://www.nuget.org/packages/Microsoft.WSL.PluginApi) from Microsoft, available on NuGet and providing bindings for it. To upgrade it, change the version build metadata of the project and run `cargo xtask nuget` (don't forget to commit changes generated from the xtask). This xtask extracts all the needed content from the NuGet package. For more info see `THIRD-PARTY-NOTICES.md` |
| 43 | + |
| 44 | +## License |
| 45 | + |
37 | 46 | This project is licensed under the MIT License. See the LICENSE file for details. |
38 | 47 |
|
39 | | -Note: This crate is part of the [WSLPlugin-rs](https://github.com/mveril/wslpluginapi-sys) project, which aims to create an idiomatic Rust framework for developing WSL plugins. |
| 48 | +Note: This crate is part of the [WSLPlugins-rs](https://github.com/mveril/wslplugins-rs) project, which aims to create an idiomatic Rust framework for developing WSL plugins. |
0 commit comments