Co-authored-by: James George <25279263+jamesgeorge007@users.noreply.github.com> Co-authored-by: Nahid Hasan <52489202+nahidhasan94@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| dist-js | ||
| guest-js | ||
| permissions | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| devenv.lock | ||
| devenv.nix | ||
| devenv.yaml | ||
| LICENSE.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| rollup.config.js | ||
| tsconfig.json | ||
Tauri Plugin: Relay
A HTTP request-response relay plugin for Tauri apps, providing advanced request handling capabilities including custom headers, certificates, proxies, and local system integration.
Features
- 🦀 Blazingly fast!
- HTTP client built on libcurl
- Security with SSL/TLS certificate management
- Proxy support
- Multiple authentication methods (Basic, Bearer, Digest)
- Content handling (JSON, Form Data, Binary)
- Async request execution with cancellation support
Installation
Important
This plugin requires Tauri 2.0 or later.
Add the plugin to your project by installing directly from GitHub:
[dependencies]
tauri-plugin-relay = { git = "https://github.com/CuriousCorrelation/tauri-plugin-relay" }
"dependencies": {
"@CuriousCorrelation/plugin-relay": "github:CuriousCorrelation/tauri-plugin-relay"
}
Quick Start
Rust
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_relay::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
JavaScript/TypeScript
import { execute, cancel } from '@CuriousCorrelation/plugin-relay'
// Execute a request
const result = await execute({
id: 1,
url: "https://api.example.com/data",
method: "POST",
headers: {
"Content-Type": ["application/json"]
},
content: {
kind: "json",
content: { hello: "world" }
}
})
// Cancel a request
await cancel(1)
Content Types
The plugin supports multiple content types for requests:
| Type | Description |
|---|---|
text |
Plain text content |
json |
JSON data with automatic parsing |
form |
Multipart form data with file support |
binary |
Raw binary data with optional MIME type |
urlencoded |
URL-encoded form data |
Authentication
Built-in support for various authentication methods:
| Method | Description |
|---|---|
basic |
Basic HTTP authentication |
bearer |
Bearer token authentication |
digest |
Digest authentication (MD5, SHA-256, SHA-512) |
Security
The plugin provides extensive security options:
- Client certificate support (PEM, PKCS#12)
- Custom CA certificates
- Certificate validation control
- Host verification settings
Development
Requirements:
- Rust 1.77.2 or later
- Node.js 18 or later
- pnpm
- libcurl with SSL support
Error Handling
The plugin provides detailed error information for:
- Network failures
- Certificate issues
- Timeout scenarios
- Parse errors
- Request cancellations
License
Code: (c) 2024 - CuriousCorrelation
MIT or MIT/Apache 2.0 where applicable.