کیتهای توسعه و کتابخانهها
با کیتهای رسمی و جامعه برای Go، پایتون، جاوااسکریپت، سوئیفت و کاتلین سریعتر بسازید. کلاینتهای نوعایمن با تازهسازی خودکار رمزینه و پشتیبانی از جریان.
کیتهای توسعه و کتابخانههای کلاینت
با کیتهای رسمی و جامعه سریعتر بسازید. ایمنی کامل نوع، تازهسازی خودکار رمزینه، منطق تلاش دوباره و پشتیبانی از جریان در همهٔ زبانهای اصلی.
کیتهای رسمی توسعه
آمادهٔ تولید و نگهداریشده به دست تیم مهندسی OrbVPN. هر کیت با یک رابط کلاینت یکپارچه از پروتکلهای REST، gRPC و WebSocket پشتیبانی میکند.
کیت Go
کلاینت رسمی Go. کد اصیل Go با پشتیبانی از context، استخر اتصال و جریان gRPC. go get github.com/orbvpn/sdk-go
کیت پایتون
کلاینت رسمی پایتون. پشتیبانی از async/await، اشارهٔ نوع و مدلهای Pydantic. pip install orbvpn
کیت جاوااسکریپت / تایپاسکریپت
کلاینت رسمی JS/TS. تعریف کامل نوع، قابل هرسشدن، و کارا در Node.js، Deno و Bun. npm install @orbvpn/sdk
کیت سوئیفت
کلاینت رسمی سوئیفت برای iOS و مکاواس. همروندی سوئیفت، پشتیبانی از Combine و توزیع با SPM.
کیت کاتلین
کلاینت رسمی کاتلین برای اندروید و JVM. کوروتینها، پشتیبانی از Flow و توزیع در Maven Central.
قابلیتهای کیتها
هر کیت رسمی از همان ابتدا با همان توانمندیهای هستهای یکسان عرضه میشود.
تازهسازی خودکار رمزینه
رمزینههای دسترسی JWT پیش از انقضا بهصورت شفاف تازه میشوند. هیچ مدیریت دستی رمزینهای لازم نیست — کیت کل چرخهٔ زندگی، از جمله تلاش دوباره در پاسخ ۴۰۱ را مدیریت میکند.
تلاش دوباره با عقبنشینی نمایی
ناکامیهای گذرا (خطای شبکه، ۴۲۹، ۵۰۳) خودکار با عقبنشینی نمایی همراه نوسان تصادفی دوباره تلاش میشوند. بیشینه تلاش و تأخیر پایه قابل تنظیماند.
ایمنی کامل نوع
هر درخواست و پاسخ کاملاً نوعدار است. ساختارهای Go، مدلهای Pydantic پایتون، رابطهای تایپاسکریپت، Codable سوئیفت و کلاسهای دادهٔ کاتلین.
پشتیبانی از جریان
پشتیبانی درجهیک از فراخوانهای جریانی gRPC و اتصالهای وبسوکت. الگوهای جریان سرور، جریان کلاینت و دوسویه همگی پشتیبانی میشوند.
نصب
Go
go get github.com/orbvpn/sdk-go@latestپایتون
pip install orbvpnجاوااسکریپت / تایپاسکریپت
npm install @orbvpn/sdk
# or
yarn add @orbvpn/sdk
# or
pnpm add @orbvpn/sdkسوئیفت
به Package.swift خود بیفزایید:
dependencies: [
.package(url: "https://github.com/orbvpn/sdk-swift.git", from: "1.0.0")
]کاتلین
به build.gradle.kts خود بیفزایید:
dependencies {
implementation("com.orbvpn:sdk-kotlin:1.0.0")
}شروع سریع
کیت را نصب کنید
زبان خود را برگزینید و با مدیر بستهٔ نشاندادهشده در بالا نصبش کنید.
کلاینت را راه بیندازید
نمونهای از کلاینت را با گواهیهای خود بسازید. کیت، احراز هویت و مدیریت رمزینه را خودکار انجام میدهد.
فراخوان API بفرستید
از روشهای نوعدار برای کار با APIهای OrbNET، OrbMesh و OrbGuard استفاده کنید.
رویدادهای بیدرنگ را مدیریت کنید
برای بهروزرسانی زنده در کانالهای وبسوکت یا جریانهای gRPC مشترک شوید.
نمونههای کد
Go
package main
import (
"context"
"fmt"
"log"
orbvpn "github.com/orbvpn/sdk-go"
)
func main() {
// Initialize client with automatic token management
client, err := orbvpn.NewClient(
orbvpn.WithCredentials("user@example.com", "your_password"),
orbvpn.WithBaseURL("https://api.orbai.world"),
orbvpn.WithRetry(3, 500), // 3 retries, 500ms base delay
)
if err != nil {
log.Fatal(err)
}
defer client.Close()
ctx := context.Background()
// Get current user profile
user, err := client.Users.Me(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Logged in as: %s\n", user.Email)
// List available VPN servers
servers, err := client.Servers.List(ctx, &orbvpn.ServerListParams{
Country: "US",
Limit: 10,
})
if err != nil {
log.Fatal(err)
}
for _, s := range servers.Data {
fmt.Printf("Server: %s (%s) - Load: %d%%\n", s.Name, s.City, s.Load)
}
// Stream real-time metrics via gRPC
stream, err := client.GRPC.OrbMesh.StreamMetrics(ctx, &orbvpn.MetricsRequest{
NodeID: "node_abc123",
Interval: 5, // seconds
})
if err != nil {
log.Fatal(err)
}
for {
metrics, err := stream.Recv()
if err != nil {
break
}
fmt.Printf("CPU: %.1f%% | Memory: %.1f%% | Connections: %d\n",
metrics.CpuUsage, metrics.MemoryUsage, metrics.ActiveConnections)
}
}پایتون
import asyncio
from orbvpn import OrbVPNClient, ServerListParams
async def main():
# Initialize client with automatic token management
client = OrbVPNClient(
email="user@example.com",
password="your_password",
base_url="https://api.orbai.world",
max_retries=3,
)
async with client:
# Get current user profile
user = await client.users.me()
print(f"Logged in as: {user.email}")
# List available VPN servers
servers = await client.servers.list(
ServerListParams(country="US", limit=10)
)
for server in servers.data:
print(f"Server: {server.name} ({server.city}) - Load: {server.load}%")
# Check a threat indicator via OrbGuard
result = await client.orbguard.intelligence.check(
indicator="suspicious-domain.com",
indicator_type="domain",
)
print(f"Threat score: {result.score}/100")
print(f"Categories: {', '.join(result.categories)}")
# Subscribe to real-time notifications
async for event in client.ws.notifications.subscribe():
print(f"[{event.type}] {event.message}")
asyncio.run(main())جاوااسکریپت / تایپاسکریپت
import { OrbVPNClient } from '@orbvpn/sdk';
const client = new OrbVPNClient({
email: 'user@example.com',
password: 'your_password',
baseURL: 'https://api.orbai.world',
maxRetries: 3,
});
async function main() {
// Get current user profile
const user = await client.users.me();
console.log(`Logged in as: ${user.email}`);
// List available VPN servers
const servers = await client.servers.list({
country: 'US',
limit: 10,
});
for (const server of servers.data) {
console.log(`Server: ${server.name} (${server.city}) - Load: ${server.load}%`);
}
// Check a threat indicator via OrbGuard
const threat = await client.orbguard.intelligence.check({
indicator: 'suspicious-domain.com',
indicatorType: 'domain',
});
console.log(`Threat score: ${threat.score}/100`);
// Subscribe to real-time notifications via WebSocket
const ws = client.ws.notifications.subscribe();
ws.on('notification', (event) => {
console.log(`[${event.type}] ${event.message}`);
});
ws.on('device_status', (event) => {
console.log(`Device ${event.deviceId}: ${event.status}`);
});
}
main().catch(console.error);تکمیل هوشمند تایپاسکریپت
کیت جاوااسکریپت/تایپاسکریپت با تعریف کامل نوع عرضه میشود. هر روش، پارامتر و پاسخ نوعدار است، پس در VS Code، WebStorm و دیگر ویرایشگرها تکمیل خودکار و بررسی خطا هنگام کامپایل میگیرید.
گزینههای پیکربندی
همهٔ کیتها همان گزینههای هستهای پیکربندی را میپذیرند:
| گزینه | نوع | پیشفرض | توضیح |
|---|---|---|---|
baseURL | string | https://api.orbai.world | نشانی پایهٔ API REST اوربنت |
grpcAddress | string | api.orbai.world:50051 | نشانی سرور gRPC |
guardURL | string | https://guard.orbai.world | نشانی پایهٔ API REST اوربگارد |
maxRetries | int | 3 | بیشینه تلاش دوباره برای ناکامیهای گذرا |
retryBaseDelay | duration | 500ms | تأخیر پایه میان تلاشها (نمایی با نوسان تصادفی) |
timeout | duration | 30s | مهلت پیشفرض درخواست |
tokenRefreshBuffer | duration | 5m | تازهسازی رمزینهٔ دسترسی این مدت پیش از انقضا |
userAgent | string | orbvpn-sdk/{lang}/{version} | رشتهٔ دلخواه User-Agent |
روشهای احراز هویت
کیتها از همهٔ روشهای احراز هویت OrbVPN پشتیبانی میکنند:
ایمیل و گذرواژه
احراز هویت استاندارد مبتنی بر گواهی، همراه با مدیریت و تازهسازی خودکار رمزینهٔ JWT.
کلید API
احراز هویت سرویس به سرویس با کلیدهای API. بهترین گزینه برای یکپارچگیهای OrbGuard و اسکریپتهای سمت سرور.
OAuth 2.0
جریانهای احراز هویت شخص ثالث از راه گوگل، اپل و گیتهاب. کیتها کل جریان تغییرمسیر OAuth را مدیریت میکنند.
گواهیهای mTLS
TLS دوسویه برای احراز هویت گره OrbMesh. مسیر گواهی و کلید کلاینت را به کیت بدهید.
کیتهای جامعه
این کیتها را جامعه نگهداری میکند و رسماً پشتیبانی نمیشوند، اما ممکن است برای زبانها و چارچوبهای دیگر سودمند باشند.
| زبان | بسته | نگهدارنده | وضعیت |
|---|---|---|---|
| Rust | orbvpn-rs | @community | بتا |
| Ruby | orbvpn-ruby | @community | آلفا |
| C# / .NET | OrbVPN.SDK | @community | بتا |
| PHP | orbvpn/sdk-php | @community | آلفا |
| Dart / Flutter | orbvpn_sdk | @community | بتا |
سلب مسئولیت کیتهای جامعه
کیتهای جامعه را توسعهدهندگان شخص ثالث نگهداری میکنند و زیر پوشش پشتیبانی OrbVPN نیستند. با صلاحدید خودتان به کارشان ببرید و همیشه بررسی کنید که با تازهترین تغییرهای API بهروز باشند.
نسخهگذاری و سازگاری کیتها
همهٔ کیتهای رسمی از نسخهگذاری معنایی پیروی میکنند. نسخههای اصلی با نسخههای API متناظرند:
| نسخهٔ کیت | نسخهٔ API | وضعیت |
|---|---|---|
v1.x | API v1 | کنونی — پایدار |
v0.x | API v1 (بتا) | منسوخ |
تغییرهای شکننده
تغییرهای شکننده تنها در انتشارهای اصلی کیتها وارد میشوند. انتشارهای فرعی و وصلهای همیشه با گذشته سازگارند. برای اعلانهای بهروزرسانی در سیاههٔ تغییرات OrbVPN مشترک شوید.
ساختن با کیت را آغاز کنید
زبان خود را برگزینید، کیت را نصب کنید و یکپارچگی خود را در چند دقیقه عرضه کنید. پشتیبانی کامل REST، gRPC و WebSocket همراه با مدیریت خودکار رمزینه.