SDK Reference
Official Linkit SDKs — integrate the Linkit API from any language with production-grade resilience, fluent builders, and type safety.
SDK Reference
Linkit provides official SDKs for 8 languages. Every SDK implements the same architecture: typed models, fluent builders, production-grade resilience (circuit breaker, retry with jitter, rate limiting), and full API parity.
Same API, Every Language
All SDKs implement identical domain coverage: 11 services (SKU, Product, Branch, Customer, Order, Offer, Brand, Category, Generic, Health, Integration), 4 fluent builders, and a unified exception hierarchy with transient-error detection.
Choose Your SDK
C# / .NET
.NET 9 · System.Text.Json · HttpClient pipeline · async/await · NuGet
TypeScript
Node.js / Deno / Bun · fetch API · full type inference · npm
Python
Python 3.10+ · httpx · asyncio · dataclasses · pip / PyPI
Dart / Flutter
Dart 3 / Flutter · dio · zero reflection · pub.dev
Kotlin / JVM
Kotlin 2.1 · OkHttp · coroutines · Java interop · Maven Central
Rust
Rust · reqwest · tokio · zero-cost abstractions · crates.io
Swift
Swift 5.9+ · URLSession · async/await · Codable · SPM
Go
Go 1.22+ · net/http · context.Context · functional options · go get
Architecture Comparison
| Feature | C# | TypeScript | Python | Dart | Kotlin | Rust | Swift | Go |
|---|---|---|---|---|---|---|---|---|
| Async I/O | async/await | Promise | asyncio | Future | suspend | async/await | async/await | context.Context |
| Serialization | System.Text.Json | Native JSON | dataclasses | Hand-written | kotlinx.serialization | serde | Codable | encoding/json |
| HTTP Client | HttpClient | fetch | httpx | dio | OkHttp | reqwest | URLSession | net/http |
| Resilience | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Builders | ✅ Fluent | ✅ Fluent | ✅ Fluent | ✅ Fluent | ✅ Fluent | ✅ Fluent | ✅ Fluent | ✅ Options |
| Validation | ✅ On build | ✅ On build | ✅ On build | ✅ On build | ✅ On build | ✅ On build | ✅ On build | ✅ On call |
| Package Manager | NuGet | npm | pip | pub | Maven/Gradle | Cargo | SPM | go get |
Common Patterns
Every SDK follows these patterns:
Client Initialization
var client = LinkitClient.QuickSetup("https://linkit.works/api/v1", "your-jwt-token");const client = LinkitClient.quickSetup("https://linkit.works/api/v1", "your-jwt-token");client = LinkitClient.quick_setup("https://linkit.works/api/v1", "your-jwt-token")final client = LinkitClient.quickSetup('https://linkit.works/api/v1', 'your-jwt-token');val client = LinkitClient.quickSetup("https://linkit.works/api/v1", "your-jwt-token")let client = LinkitClient::builder()
.base_url("https://linkit.works/api/v1")
.build()?
.with_auth("your-jwt-token").await?;let client = try LinkitClient.quickSetup(
baseUrl: "https://linkit.works/api/v1",
jwtToken: "your-jwt-token"
)client, err := linkit.QuickSetup("https://linkit.works/api/v1", "your-jwt-token")Fluent Builders
var sku = new SkuCreateBuilder()
.WithIvId("SKU-001")
.InBranch("BR-RYD")
.ForProduct("P-001")
.WithPrice(29.99)
.Build();const sku = new SkuCreateBuilder()
.withIvId("SKU-001")
.inBranch("BR-RYD")
.forProduct("P-001")
.withPrice(29.99)
.build();sku = (SkuCreateBuilder()
.with_iv_id("SKU-001")
.in_branch("BR-RYD")
.for_product("P-001")
.with_price(29.99)
.build())final sku = (SkuCreateBuilder()
..withIvId('SKU-001')
..inBranch('BR-RYD')
..forProduct('P-001')
..withPrice(29.99))
.build();val sku = SkuCreateBuilder()
.withIvId("SKU-001")
.inBranch("BR-RYD")
.forProduct("P-001")
.withPrice(29.99)
.build()let sku = client.skus().create()
.iv_id("SKU-001")
.branch_iv_id("BR-RYD")
.product_iv_id("P-001")
.price(29.99)
.send().await?;let sku = try await client.skus.create(
SKURequest(
ivId: "SKU-001",
branchIvId: "BR-RYD",
productIvId: "P-001",
price: 29.99
)
)sku, err := client.SKUs.Create(ctx, &linkit.SKURequest{
IvID: "SKU-001", BranchIvID: "BR-RYD",
ProductIvID: "P-001", Price: ptr(29.99),
})Resilience Pipeline
Every request flows through a 3-layer resilience pipeline — automatically:
- Rate Limiter — Controls concurrent requests (default: 10)
- Circuit Breaker — Opens after N failures, auto-recovers via half-open state
- Retry with Jitter — Exponential backoff + random jitter for transient errors (5xx, 429, timeouts)
No configuration needed — sensible defaults are applied. Override via LinkitConfiguration.