The SDK is versioned at the proto package level, not at the SDK or repo level. Every package isDocumentation Index
Fetch the complete documentation index at: https://docs.sdk.anghami.com/llms.txt
Use this file to discover all available pages before exploring further.
sdk.{service}.v1. Breaking changes ship as v2 packages alongside v1 until consumers migrate.
What’s stable
v1packages are stable. Once a message, field, enum value, or RPC ships inv1, it does not change incompatibly.make breakingenforces this in CI. A PR that introduces a breaking change tov1fails until reverted.- Generated code is regenerated, not rewritten. A
make generaterun on the same proto produces byte-stable output (within tooling versions).
What “breaking” means here
buf enforces the strict definition. The non-exhaustive list:
- Removing or renaming a field, message, enum, or RPC.
- Changing a field’s type or number.
- Changing an enum value’s number.
- Removing an enum value (renaming is also breaking).
- Adding a
requiredvalidation to a previously optional field.
- Adding new optional fields, messages, RPCs, or enum values.
- Adding new validation rules that loosen existing constraints.
- Improving comments and descriptions.
Adding new things
When we ship a new service, RPC, or field:- It appears in the bundled OpenAPI spec automatically.
- Generated TypeScript / Go / Swift / Java / Python clients pick it up on the next regeneration.
- Existing callers are unaffected.
v1 shape of the service.
Deprecation flow
Eventually, an API surface needs to evolve in a wayv1 cannot accommodate. The flow:
v2package introduced alongsidev1. Both ship in parallel.v1operations marked deprecated via proto field/RPC comments.- OpenAPI surfaces the deprecation. Generated docs and the bundled spec mark
v1operations asdeprecated: true. - Migration window. Typically 6–12 months, depending on the surface area touched.
v1removed in a separate, well-announced release.
v1 — when it does, you will see deprecation notices in the changelog and OpenAPI months before removal.
Generated client packaging
| Language | Package | Pinning |
|---|---|---|
| Go | github.com/anghami/sdk/api | Pin a commit / tag |
| TypeScript | @anghami/sdk | Pin a version range |
| Swift | AnghamiSDK (SPM) | Pin a version tag |
| Java | com.anghami:anghami-sdk | Pin via Gradle |
| Python | anghami-sdk | Pin via pip |
v1, upgrades are safe.
CI gates
Every PR runs:buf lint— STANDARD + COMMENTS rules.buf breaking --against main— no breaking changes tov1.make generate— verifies the generated artifacts match the protos.
v1 stable.