SDK Overview
EdgeBase provides official SDKs for 14 languages, covering web, mobile, game engines, and server-side backends.
If you need the exact repository split for core, client, and admin by language, see SDK Layer Matrix.
SDK List
| SDK | Type | Platform | Client Package | Admin Package |
|---|---|---|---|---|
| JavaScript/TypeScript | Client + Admin | Web, Node.js, Deno, Bun, React Native | @edgebase/web · @edgebase/react-native | @edgebase/admin |
| Dart/Flutter | Client + Admin | iOS, Android, Web | edgebase_flutter | edgebase_admin |
| Swift | Client only | iOS, macOS | Swift PM | — |
| Kotlin | Client + Admin | Android, iOS, JVM | KMP module | edgebase-admin-kotlin |
| Java | Client + Admin | Android, JVM | edgebase-android-java | edgebase-admin-java |
| Scala | Admin only | JVM, Play, Akka, Pekko | — | edgebase-admin-scala |
| Python | Admin only | Server, Scripts, ML | — | edgebase |
| Go | Admin only | Server, Microservices | — | sdk-go |
| PHP | Admin only | Server, WordPress, Laravel | — | edgebase/sdk |
| Rust | Admin only | Server, CLI, Systems | — | edgebase-admin |
| C# | Client + Admin | Unity, .NET | Unity Plugin | NuGet |
| C++ | Client only | Unreal Engine 5 | CMake / UE Plugin | — |
| Ruby | Admin only | Server, Scripts | — | edgebase_admin |
| Elixir | Admin only | Phoenix, Plug, BEAM | — | edgebase_admin |
Client SDKs run in browsers, mobile apps, and game engines — authenticated with user tokens. Admin SDKs run on your backend server — authenticated with a Service Key, bypassing access rules. See Admin SDK for admin-only features and a detailed comparison.
Installation & Setup
JavaScript/TypeScript
- Client SDK
- Admin SDK
npm install @edgebase/web
import { createClient } from '@edgebase/web';
const client = createClient('https://your-project.edgebase.dev');
npm install @edgebase/admin
import { createAdminClient } from '@edgebase/admin';
const admin = createAdminClient('https://your-project.edgebase.dev', {
serviceKey: process.env.EDGEBASE_SERVICE_KEY,
});
Dart/Flutter
- Client SDK (Flutter)
- Admin SDK (Dart)
dart pub add edgebase_flutter
import 'package:edgebase_flutter/edgebase.dart';
final client = ClientEdgeBase('https://your-project.edgebase.dev');
dart pub add edgebase_admin
import 'dart:io';
import 'package:edgebase_admin/edgebase_admin.dart';
final admin = AdminEdgeBase(
'https://your-project.edgebase.dev',
serviceKey: Platform.environment['EDGEBASE_SERVICE_KEY']!,
);
Swift
Client SDK only. For admin operations, use a server-side SDK.
// Package.swift
dependencies: [
.package(url: "https://github.com/melodysdreamj/edgebase-swift", from: "1.0.0")
]
import EdgeBase
let client = EdgeBaseClient("https://your-project.edgebase.dev")
Kotlin
- Client SDK (KMP)
- Admin SDK (JVM)
Kotlin Client SDK is a Kotlin Multiplatform module targeting Android, iOS, macOS, JS, and JVM.
// build.gradle.kts — add the KMP module dependency
dependencies {
implementation("dev.edgebase:edgebase-client-kotlin:0.1.0")
}
import dev.edgebase.sdk.client.ClientEdgeBase
val client = ClientEdgeBase("https://your-project.edgebase.dev")
// build.gradle.kts
dependencies {
implementation("dev.edgebase:edgebase-admin-kotlin:0.1.0")
}
import dev.edgebase.sdk.admin.AdminEdgeBase
val admin = AdminEdgeBase(
"https://your-project.edgebase.dev",
serviceKey = System.getenv("EDGEBASE_SERVICE_KEY") ?: ""
)
Java
- Client SDK (Android)
- Admin SDK (JVM)
// build.gradle
dependencies {
implementation 'dev.edgebase:edgebase-android-java:0.1.0'
}
import dev.edgebase.sdk.client.*;
ClientEdgeBase client = EdgeBase.client("https://your-project.edgebase.dev");
// build.gradle
dependencies {
implementation 'dev.edgebase:edgebase-admin-java:0.1.0'
}
import dev.edgebase.sdk.admin.*;
AdminEdgeBase admin = EdgeBase.admin(
"https://your-project.edgebase.dev",
System.getenv("EDGEBASE_SERVICE_KEY")
);
Scala
Admin SDK only. Requires a Service Key.
// build.sbt
libraryDependencies += "dev.edgebase" % "edgebase-admin-scala" % "0.1.0"
import dev.edgebase.sdk.scala.admin.AdminEdgeBase
val admin = AdminEdgeBase(
"https://your-project.edgebase.dev",
sys.env("EDGEBASE_SERVICE_KEY")
)
JavaScript — React Native
For React Native apps, use the dedicated
@edgebase/react-nativepackage instead of@edgebase/web. It keeps the same mental model, but requires explicit async storage wiring and uses React Native lifecycle integrations.
npm install @edgebase/react-native @react-native-async-storage/async-storage
import { createClient } from '@edgebase/react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';
const client = createClient('https://your-project.edgebase.dev', {
storage: AsyncStorage,
});
Python
Admin SDK only. Requires a Service Key.
pip install edgebase-admin
import os
from edgebase_admin import AdminClient
admin = AdminClient(
'https://your-project.edgebase.dev',
service_key=os.environ['EDGEBASE_SERVICE_KEY'],
)
Go
Admin SDK only. Requires a Service Key.
go get github.com/edgebase/sdk-go
import (
"os"
edgebase "github.com/edgebase/sdk-go"
)
admin := edgebase.NewAdminClient("https://your-project.edgebase.dev", os.Getenv("EDGEBASE_SERVICE_KEY"))
PHP
Admin SDK only. Requires a Service Key.
composer require edgebase/sdk
use EdgeBase\Admin\AdminClient;
$admin = new AdminClient('https://your-project.edgebase.dev', getenv('EDGEBASE_SERVICE_KEY'));
Rust
Admin SDK only. Requires a Service Key.
# Cargo.toml
[dependencies]
edgebase-admin = "0.1"
tokio = "1"
serde_json = "1"
use edgebase_admin::EdgeBase;
let admin = EdgeBase::server(
"https://your-project.edgebase.dev",
&std::env::var("EDGEBASE_SERVICE_KEY").unwrap(),
)?;
C# (Unity + .NET)
- Client SDK (Unity)
- Admin SDK (.NET)
Copy packages/sdk/csharp/src/ into your Unity project at Assets/Plugins/EdgeBase/.
using EdgeBase;
var client = new EdgeBase("https://your-project.edgebase.dev");
Install via NuGet or reference the project directly.
using var admin = new EdgeBase.Admin.AdminClient(
"https://your-project.edgebase.dev", serviceKey);
var users = await admin.AdminAuth.ListUsersAsync(limit: 50);
var rows = await admin.SqlAsync("shared", null, "SELECT * FROM posts LIMIT ?", new object[] { 10 });
await admin.BroadcastAsync("chat", "message", new { text = "hello" });
C++ (Unreal)
Client SDK only. For admin operations, use a server-side SDK.
Core (CMake):
cd packages/sdk/cpp/core
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
Unreal Plugin: Copy packages/sdk/cpp/unreal/ into your UE project's Plugins/ directory.
#include <edgebase/edgebase.h>
eb::EdgeBase client("https://your-project.edgebase.dev");
Ruby
Admin SDK only. Requires a Service Key.
gem install edgebase_admin
require "edgebase_admin"
admin = EdgebaseAdmin::AdminClient.new(
"https://your-project.edgebase.dev",
service_key: ENV.fetch("EDGEBASE_SERVICE_KEY")
)
Elixir
Admin SDK only. Requires a Service Key.
# mix.exs
defp deps do
[
{:edgebase_admin, "~> 0.1.0"}
]
end
alias EdgeBaseAdmin
admin =
EdgeBaseAdmin.new("https://your-project.edgebase.dev",
service_key: System.fetch_env!("EDGEBASE_SERVICE_KEY")
)
Feature Matrix
✅ = Supported — = Not available
| Feature | JS/RN | Dart | Swift | Kotlin | Java | Scala | Python | Go | PHP | Rust | C# | C++ | Ruby | Elixir |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Auth (signUp/signIn) | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | ✅ | — | — |
| OAuth | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | ✅ | — | — |
| Collection CRUD | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Batch Operations | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Queries & Filters | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Realtime (onSnapshot) | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | ✅ | — | — |
| Presence | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | ✅ | — | — |
| Broadcast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Room | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | — | ✅ | ✅ | ✅ | ✅ | — | — |
| Push (client) | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | ✅ | — | — |
| Storage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Admin Auth | ✅ | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| Raw SQL | ✅ | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| Field Ops (increment/deleteField) | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Multi-tenancy (db namespace) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Captcha (auto) | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | ✅ | — | — |
| KV / D1 / Vectorize | ✅ | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
Next Steps
- Admin SDK → — Admin-only features and detailed comparison
- Quickstart → — Build your first app
- Database → — Learn database basics
- Authentication → — Set up user auth