10 个版本 (4 个稳定版)
2.1.0 | 2023 年 1 月 10 日 |
---|---|
2.0.1 | 2022 年 9 月 22 日 |
1.0.0 | 2022 年 6 月 16 日 |
0.2.4 | 2022 年 5 月 25 日 |
0.1.0 | 2022 年 3 月 30 日 |
在 网页编程 中排名 #1208
71KB
343 行
Tauri 插件 graphql
一个 Tauri 插件,通过 GraphQL 实现类型安全的 IPC。
安装
Rust
[dependencies]
tauri-plugin-graphql = "2.0.0"
JavaScript
当前唯一的客户端适配器是 tauri-plugin-graphql-urql
,它是 urql
的自定义交换。如果您需要其他 GraphQL 客户端的适配器,请提交 PR!
包 | 版本(点击查看变更日志) |
---|---|
tauri-plugin-graphql-urql |
使用方法
您需要注册该插件,并给它一个 async_graphql::Schema
。此模式将用于满足请求。
use async_graphql::{Schema, Object, EmptySubscription, EmptyMutation, Result as GraphQLResult, SimpleObject};
#[derive(SimpleObject, Debug, Clone)]
struct ListItem {
id: i32,
text: String
}
impl ListItem {
pub fn new(text: String) -> Self {
Self {
id: rand::random::<i32>(),
text
}
}
}
struct Query;
#[Object]
impl Query {
async fn list(&self) -> GraphQLResult<Vec<ListItem>> {
let item = vec![
ListItem::new("foo".to_string()),
ListItem::new("bar".to_string())
];
Ok(item)
}
}
fn main() {
let schema = Schema::new(
Query,
EmptyMutation,
EmptySubscription,
);
tauri::Builder::default()
.plugin(tauri_plugin_graphql::init(schema))
.run(tauri::generate_context!())
.expect("failed to run app");
}
贡献
如果您想帮忙,有几个方面需要改进
- 客户端适配器 - 目前只有一个 urql 适配器;拥有更多客户端库的适配器将非常好。
欢迎 PR!
许可证
依赖项
~25–67MB
~1M SLoC