18 unstable releases (3 breaking)
0.4.0 | Sep 26, 2024 |
---|---|
0.3.7 | Jul 11, 2024 |
0.3.1 | Jun 27, 2024 |
0.2.2 | Feb 4, 2024 |
#593 in Database interfaces
21 downloads per month
Used in 3 crates
115KB
1.5K
SLoC
supabase_rs
supabase_rs
is an extremely light weight Supabase SDK for interacting with it's database.
I'm actively covering the entire Supabase API including Auth, Realtime, Storage etc
Feature flags
nightly
: Enables theGraphQL
module to interact without REST.storage
: Enables theStorage
module to interact with Supabase Storage.rustls
: Forces the client into usingrustls
overOpenSSL
.
Nightly build
If you want to use GraphQL early you can enable the nightly
flag, this is NOT production ready obviously.
Nightly WILL send a warning message, to disable the nightly
warning message
disable it in your .env
as such:
SUPABASE_RS_NO_NIGHTLY_MSG=true
- Note GraphQL and REST can be used together as the Client is shared from wherever it was authenticated initially.
Database Features
- Updating
- Inserting
- Inserting if unique
- Bulk Inserting
- Upserting
- Bulk Upserting
- Delete (only per ID)
- Select
- Select specific columns
- Applying Filters
- Counting total records
Advanced Filtering over select()
- Column is equal to a value
- Column is not equal to a value
- Column is greater than a value
- Column is less than a value
- Column is greater than or equal to a value
- Column is less than or equal to a value
- Order the results
- Limit the number of rows returned
- Retrieve as a CSV
Storage
- Downloading a file from a public bucket
- Saving a file
- Saving a file to a private bucket
- Uploading a file
- Generating a signed url
- Deleting a file
GraphQL
- Query validation
- Calling a Query
- Calling a mutating Query
- Response parsing
Auth
// coming soon //
Realtime
// coming soon //
Supabase SDK for Rust
This is an unofficial Rust SDK for Supabase, since there is no official SDK for Rust yet.
Features
Insert
: Add new rows to a table.Insert if unique
: Add a new row only if it does not violate a UNIQUE constraint.Update
: Modify existing rows in a table based on a unique identifier.Select
: Insert a new row into a table if it does not exist, or update it if it does.Select with count
: Select rows from a table and count the number of rows that match the filter criteria.Select with filter
: Select rows from a table based on a filter criteria.Select with filter and count
: Select rows from a table based on a filter criteria and count the number of rows that match the filter criteria.Delete
: Delete a row from a table based on a unique identifier.
Graphql features
Query request
: Runs a GraphQL query to supabase
Feature flags
storage
: Enables theStorage
module to interact with Supabase Storage.
Cargo.toml
[dependencies]
supabase_rs = "0.3.7"
// With the [storage] feature
supabase_rs = { version = "0.3.7", features = ["storage"] }
//!
Usage
First make sure you have initialized the Supabase Client Initalizing the SupabaseClient //!
Authentication
The Supabase Client is initialized with the Supabase URL and the Supabase Key.
Which are environment variables that can be set in a .env
file under the following names or any other
SUPABASE_URL=
SUPABASE_KEY=
Examples will be present in the docs
Contributors
- Izyuumi - Improved row ID routing with updating methods
- koya1616 - fixed README
- strykejern - Refactored for maintainability & fixed a warnings
Dependencies
~9–22MB
~300K SLoC