pub struct SupabaseClient { /* private fields */ }Expand description
The main Supabase client.
This client provides access to all Supabase services:
- Database queries via PostgREST (
.from()) - Realtime subscriptions (
.realtime()) - requiresrealtimefeature - Authentication (
.auth()) - when community crate is available - Storage (
.storage()) - when community crate is available - Edge Functions (
.functions()) - when community crate is available
§Example
use supabase_client_rs::SupabaseClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = SupabaseClient::new(
"https://your-project.supabase.co",
"your-anon-key"
)?;
// Query the database
let response = client
.from("users")
.select("*")
.execute()
.await?;
println!("{}", response.text().await?);
Ok(())
}Implementations§
Source§impl SupabaseClient
impl SupabaseClient
Sourcepub fn new(url: impl Into<String>, api_key: impl Into<String>) -> Result<Self>
pub fn new(url: impl Into<String>, api_key: impl Into<String>) -> Result<Self>
Create a new Supabase client with the given URL and API key.
§Arguments
url- The Supabase project URL (e.g.,https://xyzcompany.supabase.co)api_key- The Supabase API key (anon or service role)
§Example
use supabase_client_rs::SupabaseClient;
let client = SupabaseClient::new(
"https://your-project.supabase.co",
"your-anon-key"
).unwrap();Sourcepub fn with_config(config: SupabaseConfig) -> Result<Self>
pub fn with_config(config: SupabaseConfig) -> Result<Self>
Create a new Supabase client with custom configuration.
§Example
use supabase_client_rs::{SupabaseClient, SupabaseConfig};
use std::time::Duration;
let config = SupabaseConfig::new(
"https://your-project.supabase.co",
"your-anon-key"
)
.schema("custom_schema")
.timeout(Duration::from_secs(60));
let client = SupabaseClient::with_config(config).unwrap();Sourcepub fn from(&self, table: &str) -> Builder
pub fn from(&self, table: &str) -> Builder
Create a query builder for the given table.
This is the main entry point for database operations using PostgREST.
§Example
// Select all users
let users = client.from("users").select("*").execute().await?;
// Insert a new user
let new_user = client
.from("users")
.insert(r#"{"name": "Alice", "email": "alice@example.com"}"#)
.execute()
.await?;
// Update with filters
let updated = client
.from("users")
.update(r#"{"status": "active"}"#)
.eq("id", "123")
.execute()
.await?;
// Delete with filters
let deleted = client
.from("users")
.delete()
.eq("status", "inactive")
.execute()
.await?;Sourcepub fn rpc(&self, function: &str, params: &str) -> Builder
pub fn rpc(&self, function: &str, params: &str) -> Builder
Execute a stored procedure (RPC).
§Example
let result = client
.rpc("my_function", r#"{"param1": "value1"}"#)
.execute()
.await?;Sourcepub fn config(&self) -> &SupabaseConfig
pub fn config(&self) -> &SupabaseConfig
Get the configuration.
Sourcepub fn http(&self) -> &Client
pub fn http(&self) -> &Client
Get the underlying HTTP client.
Useful for making custom requests to Supabase APIs.
Sourcepub fn postgrest(&self) -> &Postgrest
pub fn postgrest(&self) -> &Postgrest
Get the PostgREST client.
Use this if you need direct access to the PostgREST client.
Sourcepub fn with_jwt(&self, jwt: impl Into<String>) -> Result<Self>
pub fn with_jwt(&self, jwt: impl Into<String>) -> Result<Self>
Set a JWT for authenticated requests.
This creates a new client with the updated JWT. Use this after a user signs in to make authenticated requests.
§Example
let jwt = "user-jwt-token";
let authenticated_client = client.with_jwt(jwt)?;Sourcepub fn realtime_url(&self) -> String
pub fn realtime_url(&self) -> String
Get the Realtime WebSocket URL.
Use this to initialize your own supabase-realtime-rs client if needed.
Trait Implementations§
Source§impl Clone for SupabaseClient
impl Clone for SupabaseClient
Source§fn clone(&self) -> SupabaseClient
fn clone(&self) -> SupabaseClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more