EdgeBase Logo

edgebase_core

Low-level Dart primitives for EdgeBase
HTTP client, query builder, storage, field ops, generated API bindings, and shared error types

pub.dev  Docs  MIT License

Dart VM · Package authors · Custom integrations · SDK internals

Client SDK Docs · Admin SDK Docs · Storage Docs · Quickstart


edgebase_core is the low-level Dart foundation for EdgeBase SDKs.

It powers packages like edgebase_flutter and edgebase_admin, and it is useful when you want:

  • direct access to the low-level HttpClient
  • generated API wrappers without the higher-level SDK layers
  • table and document references for custom integrations
  • storage primitives
  • field operations like increment() and deleteField()
  • shared EdgeBase error types

If you are building a normal Flutter app, start with edgebase_flutter. If you need trusted Service Key access on the server, start with edgebase_admin.

EdgeBase is the open-source edge-native BaaS that runs on Edge, Docker, and Node.js.

This package is one part of the wider EdgeBase platform. For the full platform, CLI, Admin Dashboard, server runtime, docs, and all public SDKs, see the main repository: edge-base/edgebase.

Documentation Map

For AI Coding Assistants

If you are using an AI coding assistant, check llms.txt before generating code.

It captures the low-level package boundary, canonical examples, and Dart-specific rules for DbRef, TableRef, batch operations, and storage signed URL semantics.

Installation

dart pub add edgebase_core

Why This Package Exists

Most apps should not start with edgebase_core.

This package exists so you can build on the same low-level pieces the higher-level SDKs use:

Capability Included
HTTP client HttpClient
Generated API wrappers GeneratedDbApi
Database references DbRef, TableRef, DocRef
Storage StorageClient
Field operations increment(), deleteField()
Context handling ContextManager
Error types EdgeBaseError, FieldError
Token contracts TokenManager, TokenPair

Quick Start

import 'package:edgebase_core/edgebase_core.dart';

final httpClient = HttpClient(
  baseUrl: 'https://your-project.edgebase.fun',
  contextManager: ContextManager(),
);

final api = GeneratedDbApi(httpClient);
final posts = DbRef(api, 'app').table('posts');

final result = await posts
    .where('published', '==', true)
    .limit(10)
    .getList();

print(result.items);

Working With Tables

final posts = DbRef(api, 'app').table('posts');

final created = await posts.insert({
  'title': 'Hello EdgeBase',
  'published': true,
});

final updated = await posts.doc(created['id'] as String).update({
  'title': 'Updated title',
});

print(updated);

For instance databases, pass the instance id to DbRef:

final workspacePosts = DbRef(api, 'workspace', instanceId: 'ws-123')
    .table('posts');

Storage

final storage = StorageClient(httpClient);

await storage.upload(
  'uploads',
  'hello.bin',
  [1, 2, 3, 4],
  contentType: 'application/octet-stream',
);

final url = storage.getUrl('uploads', 'hello.bin');
print(url);

Read more: Storage Docs

Field Operations

Use the helper operations when you need atomic updates:

await posts.doc('post-123').update({
  'viewCount': increment(1),
  'legacyField': deleteField(),
});

Error Handling

try {
  await posts.getOne('missing-id');
} on EdgeBaseError catch (error) {
  print(error.message);
  print(error.statusCode);
}

Building On Top Of edgebase_core

HttpClient accepts:

  • baseUrl
  • contextManager
  • optional tokenManager
  • optional serviceKey

That makes it flexible enough for:

  • custom SDK wrappers
  • internal tooling
  • server-side scripts
  • partial integrations where you do not want the full Flutter or admin surface

Choose The Right Dart Package

Package Use it for
edgebase_flutter Flutter apps and client-side flows
edgebase_admin Trusted server-side Dart code with Service Key access
edgebase_core Low-level building blocks and custom integrations
edgebase Umbrella package when you want a broader Dart entry point

License

MIT

Libraries

edgebase_core
EdgeBase Core SDK — shared types, HTTP client, table, storage.