# webarcade-api
Plugin API for [WebArcade](https://github.com/renzora/webarcade) - Build native desktop plugins with Rust.
## Installation
```toml
[dependencies]
webarcade-api = "0.1"
# Enable bridge feature for HTTP route handlers
webarcade-api = { version = "0.1", features = ["bridge"] }
```
## Quick Start
```rust
use api::{Plugin, PluginMetadata};
pub struct MyPlugin;
impl Plugin for MyPlugin {
fn metadata(&self) -> PluginMetadata {
PluginMetadata {
id: "my-plugin".into(),
name: "My Plugin".into(),
version: "1.0.0".into(),
description: "A WebArcade plugin".into(),
author: "You".into(),
dependencies: vec![],
}
}
}
```
## HTTP Route Handlers
Enable the `bridge` feature to create HTTP route handlers:
```rust
use api::{HttpRequest, HttpResponse, json, json_response};
pub async fn handle_hello(_req: HttpRequest) -> HttpResponse {
json_response(&json!({
"message": "Hello from Rust!"
}))
}
```
Define routes in your plugin's `Cargo.toml`:
```toml
[routes]
"GET /hello" = "handle_hello"
"POST /data" = "handle_data"
```
## Features
- `bridge` - Enable HTTP bridge functionality (tokio runtime, HTTP types). Only needed for plugins that define routes.
## License
MIT