Skip to main content

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

SDKTypePlatformClient PackageAdmin Package
JavaScript/TypeScriptClient + AdminWeb, Node.js, Deno, Bun, React Native@edgebase/web · @edgebase/react-native@edgebase/admin
Dart/FlutterClient + AdminiOS, Android, Webedgebase_flutteredgebase_admin
SwiftClient onlyiOS, macOSSwift PM
KotlinClient + AdminAndroid, iOS, JVMKMP moduleedgebase-admin-kotlin
JavaClient + AdminAndroid, JVMedgebase-android-javaedgebase-admin-java
ScalaAdmin onlyJVM, Play, Akka, Pekkoedgebase-admin-scala
PythonAdmin onlyServer, Scripts, MLedgebase
GoAdmin onlyServer, Microservicessdk-go
PHPAdmin onlyServer, WordPress, Laraveledgebase/sdk
RustAdmin onlyServer, CLI, Systemsedgebase-admin
C#Client + AdminUnity, .NETUnity PluginNuGet
C++Client onlyUnreal Engine 5CMake / UE Plugin
RubyAdmin onlyServer, Scriptsedgebase_admin
ElixirAdmin onlyPhoenix, Plug, BEAMedgebase_admin
Client vs 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

npm install @edgebase/web
import { createClient } from '@edgebase/web';

const client = createClient('https://your-project.edgebase.dev');

Dart/Flutter

dart pub add edgebase_flutter
import 'package:edgebase_flutter/edgebase.dart';

final client = ClientEdgeBase('https://your-project.edgebase.dev');

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

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")

Java

// 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");

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-native package 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)

Copy packages/sdk/csharp/src/ into your Unity project at Assets/Plugins/EdgeBase/.

using EdgeBase;

var client = new EdgeBase("https://your-project.edgebase.dev");

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

FeatureJS/RNDartSwiftKotlinJavaScalaPythonGoPHPRustC#C++RubyElixir
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