diff --git a/Cargo.toml b/Cargo.toml index e532ae4..f05056e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,12 @@ members = [ default-members = ["qemu-rdw"] resolver = "2" +[workspace.package] +edition = "2021" +rust-version = "1.77" +license = "MIT" +repository = "https://gitlab.com/marcandre.lureau/qemu-display" + [workspace.dependencies] tracing = "0.1" zbus = { version = "5.0", features = ["p2p", "serde_bytes"] } diff --git a/qemu-display/Cargo.toml b/qemu-display/Cargo.toml index 07a4277..96f3f61 100644 --- a/qemu-display/Cargo.toml +++ b/qemu-display/Cargo.toml @@ -2,9 +2,14 @@ name = "qemu-display" version = "0.1.0" authors = ["Marc-André Lureau "] -edition = "2021" +edition = { workspace = true } +rust-version = { workspace = true } -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +description = "Helper library to communicate with qemu -display dbus" +repository = { workspace = true } +keywords = ["D-Bus", "DBus", "QEMU", "Virtualization", "VM"] +license = { workspace = true } +categories = ["virtualization", "gui", "api-bindings"] [features] qmp = ["dep:qapi", "dep:base64"] diff --git a/qemu-display/README.md b/qemu-display/README.md new file mode 100644 index 0000000..80a60cd --- /dev/null +++ b/qemu-display/README.md @@ -0,0 +1,89 @@ +# QEMU -display dbus library + +[![Crates.io](https://img.shields.io/crates/v/qemu-display.svg)](https://crates.io/crates/qemu-display) +[![Documentation](https://docs.rs/qemu-display/badge.svg)](https://docs.rs/qemu-display) +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) + +Provides convenient APIs to communicate with `qemu -display dbus` from Rust. + +## Features + +- provides all common D-Bus interfaces by default +- provides "unix" and "win32" specific interfaces on respective targets +- optional "qmp" feature, to allow connecting to QEMU via p2p / bus-less. + +## Installation + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +qemu-display = "0.1.0" +``` + +## Quick Start + +Here's a simple example of how to use the library: + +```rust +use qemu_display::Display; +use zbus::Connection; + +#[async_std::main] +async fn main() -> Result<(), Box> { + let conn = Connection::session().await?; + let display = Display::new::<()>(&conn, None).await?; + // TODO: complete this example + Ok(()) +} +``` + +## API Documentation + +For detailed API documentation, please visit [docs.rs/qemu-display](https://docs.rs/qemu-display). + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change. + +Please make sure to update tests as appropriate. + +### Development Setup + +1. Clone the repository: +```bash +git clone https://gitlab.com/marcandre.lureau/qemu-display +cd qemu-display/qemu-display +``` + +2. Build the project: +```bash +cargo build +``` + +3. Run tests: +```bash +cargo test +``` + +## Changelog + +### [0.1.0] - 2025-01-15 +- Initial release + +## License + +This project is licensed under the MIT License - see the [LICENSE](https://opensource.org/licenses/MIT) file for details. + +## Acknowledgments + +- Thanks to contributors +- Credit to Rust, QEMU and zbus +- Red Hat! + +## Contact + +- Email: marcandre.lureau@gmail.com + +--- +Built with ❤️ using Rust diff --git a/qemu-display/src/lib.rs b/qemu-display/src/lib.rs index be57624..3f742c8 100644 --- a/qemu-display/src/lib.rs +++ b/qemu-display/src/lib.rs @@ -1,6 +1,6 @@ +#![doc = include_str!("../README.md")] #![allow(clippy::too_many_arguments)] -pub use memmap2; pub use zbus; pub mod util;