https://github.com/agora-oss-org/agora-sdk-plus
Additive, Agora-only SDK features with no upstream Replyke counterpart β end-to-end-encrypted Secure Chat (blind MLS / RFC 9420), the Social Graph lenses, and web auth ergonomics that drop into @agora-sdk apps.
https://github.com/agora-oss-org/agora-sdk-plus
agora agora-sdk end-to-end-encryption expo mls oauth open-source react react-native replyke sdk secure-chat self-hosted social-graph social-network typescript
Last synced: 10 days ago
JSON representation
Additive, Agora-only SDK features with no upstream Replyke counterpart β end-to-end-encrypted Secure Chat (blind MLS / RFC 9420), the Social Graph lenses, and web auth ergonomics that drop into @agora-sdk apps.
- Host: GitHub
- URL: https://github.com/agora-oss-org/agora-sdk-plus
- Owner: agora-oss-org
- License: apache-2.0
- Created: 2026-06-07T04:01:17.000Z (about 2 months ago)
- Default Branch: root
- Last Pushed: 2026-07-04T12:05:39.000Z (23 days ago)
- Last Synced: 2026-07-04T13:12:34.424Z (23 days ago)
- Topics: agora, agora-sdk, end-to-end-encryption, expo, mls, oauth, open-source, react, react-native, replyke, sdk, secure-chat, self-hosted, social-graph, social-network, typescript
- Language: TypeScript
- Size: 1.38 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Notice: NOTICE
Awesome Lists containing this project
README
# Agora SDK Plus πΈ
Additive, **Agora-only** SDK features that build on top of
[`@agora-sdk/*`](https://github.com/jenova-marie/agora-sdk) β capabilities with **no upstream
[Replyke](https://github.com/replyke/monorepo) counterpart**, kept out of the `@agora-sdk/*` fork so
that fork stays a tiny, documented divergence from upstream.
Everything here is original work, designed to drop into an Agora/Replyke app and reuse its config.
The features are independent β adopt only the ones you need.
---
## β¨ Features
Each feature is its own package group with a dedicated guide. Start there:
| | Feature | What it provides | Guide |
|---|---|---|---|
| π | **Secure Chat** | The client side of Agora's end-to-end-encrypted messaging (MLS / RFC 9420). The server stays *blind*; all crypto lives here behind a swappable seam. | [`docs/SECURE-CHAT.md`](docs/SECURE-CHAT.md) |
| π· | **Social Graph** | The community-as-a-commons lenses β Weather, Constellation, Neighborhood, Transparency β designed to be rendered with care rather than mined. | [`docs/SOCIAL-GRAPH.md`](docs/SOCIAL-GRAPH.md) |
| π | **Auth ergonomics** | Black-box OAuth for web/MPA apps: a callback gated on real persistence, a first-class auth-ready signal, a logout that reliably ends the session, and stale-session self-heal. | [`docs/AUTH.md`](docs/AUTH.md) |
> πΏ **On independence.** Secure Chat and Social are fully **standalone** β they take everything they
> need (`baseUrl`, access token) as explicit inputs and have *no* code dependency on the SDK. **Auth
> ergonomics** is the sole exception: it peer-depends on `@agora-sdk/react-js` because its purpose is
> to coordinate with the SDK's own auth session. See [`CLAUDE.md`](CLAUDE.md) for the scoped-exception
> rationale.
## π¦ Packages
Each feature group mirrors the SDK's **core + platform** shape for consistency:
```
secure-chat @agora-sdk/secure-chat-{crypto,core,react-js,react-native,expo}
social @agora-sdk/social-{core,react-js,react-native,expo}
auth @agora-sdk/auth-react-js (web only)
```
Per-package roles are documented in each feature's guide above; the package graph and seams are drawn
in [`ARCHITECTURE.md`](ARCHITECTURE.md). πΊοΈ
> π Each guide **ships inside** its primary web package, so it travels with an `npm install`:
> [`AUTH.md`](docs/AUTH.md) in `@agora-sdk/auth-react-js`, [`SECURE-CHAT.md`](docs/SECURE-CHAT.md) in
> `@agora-sdk/secure-chat-react-js`, and [`SOCIAL-GRAPH.md`](docs/SOCIAL-GRAPH.md) in
> `@agora-sdk/social-react-js`. The copies are generated from `docs/` at build time (single source of
> truth), so they never drift.
## π οΈ Develop
```bash
pnpm install
pnpm run build-all # all feature packages, in dependency order (dual ESM + CJS; some web pkgs are ESM-only)
pnpm run typecheck
pnpm test # unit suite (vitest) β fully mocked, no server required
```
See [`docs/TESTING.md`](docs/TESTING.md) for the full picture β the three layers (unit / jsdom /
e2e), what each needs, and the env vars that gate the opt-in **e2e** flow. Those require a running
[agora-server](https://github.com/jenova-marie/agora-server) and are skipped by default, so `pnpm test`
and CI stay server-free.
## π§© How this fits together
- **[agora-server](https://github.com/jenova-marie/agora-server)** β the API: the blind MLS Delivery
Service plus the social graph endpoints. Owns the wire contract (`@agora-server/contract`).
- **[agora-sdk](https://github.com/jenova-marie/agora-sdk)** β the Replyke fork; a sibling SDK an app
runs alongside these features.
- **agora-sdk-plus** (this repo) β the additive client layer: crypto, transport, hooks, and React
components.
Further reading: [`CLAUDE.md`](CLAUDE.md) (architecture prose), [`ARCHITECTURE.md`](ARCHITECTURE.md)
(diagrams), and [`STATUS.md`](STATUS.md) (current state). π
## π License
[Apache-2.0](LICENSE). Original Agora work; not affiliated with Replyke.