Skip to main content

SDK Layer Matrix

EdgeBase SDKs are not packaged the same way in every language.

Some ecosystems expose a clean three-way split:

  • core: low-level shared/generated layer
  • client: user-token, app-facing SDK
  • admin: service-key, server-side SDK

Other ecosystems only expose a subset, or combine some layers into a single package.

This page reflects what exists in the repository today.

Today that means 14 SDK languages total, with 12 languages exposing an admin/server-side surface.

Summary

LanguageCoreClientAdminNotes
JavaScript / TypeScript@edgebase/core@edgebase/web, @edgebase/react-native@edgebase/admin@edgebase/ssr is a separate server-side user-context package
Dart / Flutteredgebase_coreedgebase_flutteredgebase_adminFull split
Kotlin:core:client:adminKMP core/client, JVM admin
Javaedgebase-core-javaedgebase-android-javaedgebase-admin-javaSplit by package
Scalaedgebase-core-scalaNo dedicated packageedgebase-admin-scalaScala-facing wrappers over the Java runtime
SwiftEdgeBaseCoreEdgeBaseNo dedicated packageEdgeBaseServerClient exists in packages/ios, but is not documented as a standalone admin SDK
C#EdgeBase.CoreEdgeBase.UnityEdgeBase.AdminFull split in repo
C++packages/corepackages/unrealNo dedicated packageUnreal wrapper over shared C++ core
Pythonedgebase-coreNo dedicated packageedgebase-adminRoot edgebase package is a combined entrypoint, but there is no separate client-only package
GoEmbeddedNo dedicated packagegithub.com/edgebase/sdk-goSingle server-only SDK
PHPedgebase/coreNo dedicated packageedgebase/adminServer-only split
Rustedgebase-coreNo dedicated packageedgebase-adminServer-only split
Rubyedgebase_coreNo dedicated packageedgebase_adminServer-only split
Elixiredgebase_coreNo dedicated packageedgebase_adminServer-only split

Captcha Runtime Support

Layer packaging and captcha runtime support are related but different questions. For the full Turnstile behavior guide and platform notes, see Captcha (Bot Protection).

Legend:

  • : supported and validated in a current example/runtime flow
  • : supported by the SDK or target host, but still depends on a specific host/plugin or has not been fully re-validated in every runtime
  • : no client-side captcha path
Client SDKAndroidiOSmacOSWindowsLinuxWeb
@edgebase/web
@edgebase/react-native
edgebase_flutter
EdgeBase (Swift)
:client (Kotlin KMP)
edgebase-android-java
EdgeBase.Unity
packages/unreal

Notes:

  • @edgebase/web desktop columns mean browser-hosted runtimes such as Electron renderer processes, not a native desktop-only SDK.
  • :client (Kotlin KMP) uses a no-op JVM captcha provider, so Windows/Linux desktop JVM targets are intentionally not marked supported here.
  • EdgeBase.Unity desktop support depends on a supported WebView host. The current macOS path is validated through an embedded gree/unity-webview window. Other desktop targets still require a supported host integration or a custom TurnstileProvider.SetWebViewFactory(...).
  • packages/unreal uses the built-in browser runtime on supported targets; macOS, Android, and iOS are validated in the current example app flow.
  • Admin/server SDKs are not listed here because Service Key requests bypass captcha by design.

Core Layer

The core layer is the shared low-level surface: HTTP transport, generated API methods, shared table/storage primitives, and other reusable building blocks.

LanguagePackage / ModuleRepo PathNotes
JavaScript / TypeScript@edgebase/corepackages/sdk/js/packages/corePublic low-level package used by web/admin/ssr
Dart / Flutteredgebase_corepackages/sdk/dart/packages/coreShared package used by Flutter and admin
Kotlin:corepackages/sdk/kotlin/coreKMP core module
Javaedgebase-core-javapackages/sdk/java/packages/coreShared Java core
Scalaedgebase-core-scalapackages/sdk/scala/packages/coreScala wrapper layer over the Java core
SwiftEdgeBaseCorepackages/sdk/swift/packages/coreShared SwiftPM core package
C#EdgeBase.Corepackages/sdk/csharp/packages/coreShared .NET core package
C++packages/corepackages/sdk/cpp/packages/coreShared C++ core library
Pythonedgebase-corepackages/sdk/python/packages/coreSplit core package exists alongside root package
GoEmbeddedpackages/sdk/goNo separate core package; low-level API lives inside the single Go SDK
PHPedgebase/corepackages/sdk/php/packages/coreShared Composer package
Rustedgebase-corepackages/sdk/rust/packages/coreShared crate
Rubyedgebase_corepackages/sdk/ruby/packages/coreShared gem
Elixiredgebase_corepackages/sdk/elixir/packages/coreShared Mix package for HTTP/runtime, DB, and storage helpers

Client Layer

The client layer is the app-facing SDK intended for browser, mobile, desktop, or game clients using user auth tokens and access rules.

LanguagePackage / ModuleRepo PathNotes
JavaScript / TypeScript@edgebase/webpackages/sdk/js/packages/webBrowser/client package
JavaScript / TypeScript@edgebase/react-nativepackages/sdk/react-nativeReact Native client variant
JavaScript / TypeScript@edgebase/ssrpackages/sdk/js/packages/ssrServer-side user-context package; not an admin SDK
Dart / Flutteredgebase_flutterpackages/sdk/dart/packages/flutterFlutter client package
Kotlin:clientpackages/sdk/kotlin/clientKMP client module
Javaedgebase-android-javapackages/sdk/java/packages/androidAndroid/JVM client package
ScalaNo dedicated packagepackages/sdk/scalaNo client SDK; Scala currently targets the server/admin surface
SwiftEdgeBasepackages/sdk/swift/packages/iosClient-facing Swift package
C#EdgeBase.Unitypackages/sdk/csharp/packages/unityUnity client package
C++packages/unrealpackages/sdk/cpp/packages/unrealUnreal Engine client wrapper
PythonNo dedicated packagepackages/sdk/pythonRoot edgebase package is combined, but there is no separate client-only package
GoNo dedicated packagepackages/sdk/goNo client SDK
PHPNo dedicated packagepackages/sdk/phpNo client SDK
RustNo dedicated packagepackages/sdk/rustNo client SDK
RubyNo dedicated packagepackages/sdk/rubyNo client SDK
ElixirNo dedicated packagepackages/sdk/elixirNo client SDK; Elixir currently targets the server/admin surface

Admin Layer

The admin layer is the service-key surface for server-side code, bypassing access rules and exposing admin-only features such as admin auth, SQL, KV, D1, Vectorize, and other native resources.

LanguagePackage / ModuleRepo PathNotes
JavaScript / TypeScript@edgebase/adminpackages/sdk/js/packages/adminDedicated admin package
Dart / Flutteredgebase_adminpackages/sdk/dart/packages/adminDedicated admin package
Kotlin:adminpackages/sdk/kotlin/adminJVM admin module
Javaedgebase-admin-javapackages/sdk/java/packages/adminDedicated admin package
Scalaedgebase-admin-scalapackages/sdk/scala/packages/adminScala-native facade over the Java admin runtime
SwiftNo dedicated packagepackages/sdk/swift/packages/iosEdgeBaseServerClient exists in the iOS package, but there is no separate documented admin package
C#EdgeBase.Adminpackages/sdk/csharp/packages/adminDedicated admin package in repo
C++No dedicated packagepackages/sdk/cppNo admin SDK
Pythonedgebase-adminpackages/sdk/python/packages/adminSplit admin package exists; root edgebase package is combined
Gogithub.com/edgebase/sdk-gopackages/sdk/goSingle server-only SDK
PHPedgebase/adminpackages/sdk/php/packages/adminDedicated admin package
Rustedgebase-adminpackages/sdk/rust/packages/adminDedicated admin crate
Rubyedgebase_adminpackages/sdk/ruby/packages/adminDedicated admin gem
Elixiredgebase_adminpackages/sdk/elixir/packages/adminDedicated Mix package for service-key/server-side usage

Reading This Matrix

  • If a language shows No dedicated package, that means the layer is either absent or only present as an internal/helper surface, not as a clean public package boundary.
  • If a language shows Embedded, the low-level API exists, but it is packaged inside a single SDK rather than split into its own module.
  • This page is intentionally repo-based. It is meant to clarify what modules actually exist today, not just the simplified marketing overview.