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. If you need the current checked-in certification evidence and how to read it, see SDK Verification Matrix.

SDK List​

SDKTypePlatformClient PackageAdmin Package
JavaScript/TypeScriptClient + AdminWeb, Node.js, Deno, Bun, React Native@edge-base/web · @edge-base/react-native@edge-base/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, Pekko—edgebase-admin-scala
PythonAdmin onlyServer, Scripts, ML—edgebase-admin
GoAdmin onlyServer, Microservices—github.com/edge-base/sdk-go
PHPAdmin onlyServer, WordPress, Laravel—edgebase/admin
RustAdmin onlyServer, CLI, Systems—edgebase-admin
C#Client + AdminUnity, .NETSource copy / Unity pluginNuGet
C++ (alpha)Client onlyUnreal Engine 5CMake / UE Plugin—
RubyAdmin onlyServer, Scripts—edgebase_admin
ElixirAdmin onlyPhoenix, Plug, BEAM—edgebase_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.

The public docs separate "what exists" from "what is continuously certified." Package layout lives on this page; verified cross-runtime behavior lives in SDK Verification Matrix.


Installation & Setup​

JavaScript/TypeScript​

npm install @edge-base/web
import { createClient } from '@edge-base/web';

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

Dart/Flutter​

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

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

Swift​

Client SDK only. For admin operations, use a server-side SDK.

// Package.swift
dependencies: [
.package(url: "https://github.com/edge-base/edgebase-swift", from: "0.5.0")
]
import EdgeBase

let client = EdgeBaseClient("https://your-project.edgebase.fun")

Kotlin​

Kotlin Client SDK is a Kotlin Multiplatform module targeting Android, iOS, macOS, JS, and JVM.

// build.gradle.kts — add the JitPack repository and dependency
repositories {
maven("https://jitpack.io")
}

dependencies {
implementation("com.github.edge-base.edgebase:edgebase-client:v0.5.0")
}
import dev.edgebase.sdk.client.ClientEdgeBase

val client = ClientEdgeBase("https://your-project.edgebase.fun")

Java​

// build.gradle
repositories {
maven { url 'https://jitpack.io' }
}

dependencies {
implementation 'com.github.edge-base.edgebase:edgebase-android-java:v0.5.0'
}
import dev.edgebase.sdk.client.*;

ClientEdgeBase client = EdgeBase.client("https://your-project.edgebase.fun");

Scala​

Admin SDK only. Requires a Service Key.

// build.sbt
resolvers += "jitpack" at "https://jitpack.io"

libraryDependencies += "com.github.edge-base.edgebase" % "edgebase-admin-scala" % "v0.5.0"
import dev.edgebase.sdk.scala.admin.AdminEdgeBase

val admin = AdminEdgeBase(
"https://your-project.edgebase.fun",
sys.env("EDGEBASE_SERVICE_KEY")
)

JavaScript — React Native​

For React Native apps, use the dedicated @edge-base/react-native package instead of @edge-base/web. It requires ordinary async storage for non-secret caches plus a Keychain/Keystore-backed auth adapter.

npm install @edge-base/react-native @react-native-async-storage/async-storage react-native-keychain react-native-get-random-values
import 'react-native-get-random-values';
import { createClient } from '@edge-base/react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';
import * as Keychain from 'react-native-keychain';

const secureStorage = {
async getItem(key: string) {
const value = await Keychain.getGenericPassword({ service: key });
return value ? value.password : null;
},
async setItem(key: string, value: string) {
await Keychain.setGenericPassword('edgebase', value, { service: key });
},
async removeItem(key: string) {
await Keychain.resetGenericPassword({ service: key });
},
};

const client = createClient('https://your-project.edgebase.fun', {
storage: AsyncStorage,
secureStorage,
});

secureStorage is required unless the app explicitly enables the local-development-only insecure-storage escape hatch. See the package README for claimed HTTPS OAuth callbacks and cold-start handling.

Python​

Admin SDK only. Requires a Service Key.

pip install edgebase-admin
import os
from edgebase_admin import create_admin_client

admin = create_admin_client(
'https://your-project.edgebase.fun',
service_key=os.environ['EDGEBASE_SERVICE_KEY'],
)

Go​

Admin SDK only. Requires a Service Key.

go get github.com/edge-base/sdk-go
import (
"os"
edgebase "github.com/edge-base/sdk-go"
)

admin := edgebase.NewAdminClient("https://your-project.edgebase.fun", 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.fun', getenv('EDGEBASE_SERVICE_KEY'));

Rust​

Admin SDK only. Requires a Service Key.

# Cargo.toml
[dependencies]
edgebase-admin = "0.5.0"
tokio = "1"
serde_json = "1"
use edgebase_admin::EdgeBase;

let admin = EdgeBase::server(
"https://your-project.edgebase.fun",
&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.fun");

C++ (Unreal)​

Alpha

The C++ (Unreal) SDK is in alpha. APIs and behavior may change without notice. Not recommended for production use.

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.fun");

Ruby​

Admin SDK only. Requires a Service Key.

gem install edgebase_admin
require "edgebase_admin"

admin = EdgebaseAdmin::AdminClient.new(
"https://your-project.edgebase.fun",
service_key: ENV.fetch("EDGEBASE_SERVICE_KEY")
)

Elixir​

Admin SDK only. Requires a Service Key.

# mix.exs
defp deps do
[
{:edgebase_admin, "~> 0.5.0"}
]
end
alias EdgeBaseAdmin

admin =
EdgeBaseAdmin.new("https://your-project.edgebase.fun",
service_key: System.fetch_env!("EDGEBASE_SERVICE_KEY")
)

Feature Matrix​

✅ = Supported    — = Not available

FeatureJS/RNDartSwiftKotlinJavaScalaPythonGoPHPRustC#C++ (alpha)RubyElixir
Auth (signUp/signIn)✅✅✅✅✅—————✅✅——
OAuth URL construction / start✅✅✅✅✅—————✅✅——
Bound OAuth app-callback completion✅—————————————
Collection CRUD✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Batch Operations✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Queries & Filters✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Database Subscriptions (onSnapshot)✅✅✅✅✅—————✅✅——
Presence✅✅✅✅✅—————✅✅——
Broadcast✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Room✅✅✅✅✅—✅—✅✅✅✅——
Push (client)✅✅✅✅✅—————✅✅——
Storage✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Admin Auth✅✅—✅✅✅✅✅✅✅✅—✅✅
Raw SQL✅✅—✅✅✅✅✅✅✅✅—✅✅
Field Ops (increment/deleteField)✅✅✅✅✅—✅✅✅✅✅✅✅✅
Multi-tenancy (db namespace)✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Captcha (auto)✅✅✅✅✅—————✅✅——
KV / D1 / Vectorize✅✅—✅✅✅✅✅✅✅✅—✅✅

The combined JS/RN callback cell means @edge-base/web and @edge-base/react-native both expose handleOAuthCallback(); React Native also exposes handleInitialOAuthCallback() for a cold start. Other client SDKs may construct the provider URL, but do not yet provide the callback binding, validation, server rotation, and durable adoption required for a production OAuth completion flow.


Next Steps​