Verne Software Rust SDK
The official Rust SDK for the Verne Nautilus platform.
Server-side only. API keys carry full service access and must never be used in WASM or client-side contexts.
Requirements
Rust 1.75 or later.
Installation
[]
= "1.1"
Quick Start
use Verne;
async
You can also instantiate services independently if you only need one:
use ;
let relay = new;
let gate = new;
Relay — Webhooks-as-a-Service
Send events to all subscribed endpoints:
verne.relay?.messages.send.await?;
Optional parameters:
verne.relay?.messages.send.await?;
List previously sent events:
let page = verne.relay?.messages.list.await?;
println!; // Vec<Message>
println!; // bool
println!; // pass to the next call to paginate
Gate — Auth-as-a-Service
Identity Management
Manage your end-users. The tenant_id is automatically scoped to your API key.
// Create a user
let identity = verne.gate?.identities.create.await?;
// Get a user
verne.gate?.identities.get.await?;
// Update a user (JSON Patch — RFC 6902)
verne.gate?.identities.patch.await?;
// Delete a user
verne.gate?.identities.delete.await?;
// Activate / deactivate a user (an inactive user cannot log in)
verne.gate?.identities.deactivate.await?;
verne.gate?.identities.activate.await?;
// …or set the state explicitly:
verne.gate?.identities.set_state.await?;
// Resend the email verification link
verne.gate?.identities.resend_verification.await?;
Security Settings
Read or replace the tenant's security settings (passwordless login, TOTP MFA):
let security = verne.gate?.settings.get_security.await?;
// security.passwordless_enabled, security.mfa_enabled
// Both fields are always sent — the update is a full replacement, not a merge.
verne.gate?.settings.update_security.await?;
Access Tokens
Exchange your long-lived API key for a short-lived access token:
let token = verne.gate?.tokens.create.await?;
// token.access_token — attach to downstream requests
// token.expires_at — ISO 8601 expiry
Validate a token:
let info = verne.gate?.tokens.introspect.await?;
if !info.active
Authorization
Check whether a subject is allowed to perform an action:
let decision = verne.gate?.authorize.await?;
if !decision.allowed
Clockwork — Cron-as-a-Service
Schedule recurring cron jobs and one-off delayed jobs that invoke your HTTP endpoints, and inspect their execution history. List and executions endpoints return a plain Vec<T> (no pagination).
Cron Jobs
// Create a recurring job
let job = verne.clockwork?.jobs.create.await?;
// List all cron jobs
for job in verne.clockwork?.jobs.list.await?
// Update a job (only the fields you set are changed)
verne.clockwork?.jobs.update.await?;
// Inspect execution history
for exec in verne.clockwork?.jobs.executions.await?
// Delete a job
verne.clockwork?.jobs.delete.await?;
Delayed Jobs
// Schedule a one-off job
let job = verne.clockwork?.delayed.create.await?;
// List all delayed jobs
for job in verne.clockwork?.delayed.list.await?
// Inspect execution history
verne.clockwork?.delayed.executions.await?;
// Cancel a pending job
verne.clockwork?.delayed.cancel.await?;
Error Handling
All errors are returned as nautilus_rs::Error:
use Error;
match verne.relay?.messages.send.await
Configuration
Both Verne and the per-service builders accept an optional timeout (default 30 seconds):
let verne = builder
.relay
.timeout_secs
.build?;