کیت‌های توسعه و کتابخانه‌ها

با کیت‌های رسمی و جامعه برای Go، پایتون، جاوااسکریپت، سوئیفت و کاتلین سریع‌تر بسازید. کلاینت‌های نوع‌ایمن با تازه‌سازی خودکار رمزینه و پشتیبانی از جریان.

۵ کیت رسمی

کیت‌های توسعه و کتابخانه‌های کلاینت

با کیت‌های رسمی و جامعه سریع‌تر بسازید. ایمنی کامل نوع، تازه‌سازی خودکار رمزینه، منطق تلاش دوباره و پشتیبانی از جریان در همهٔ زبان‌های اصلی.

0
کیت رسمی
0
پوشش API
0
پروتکل
0
پروانه

کیت‌های رسمی توسعه

آمادهٔ تولید و نگهداری‌شده به دست تیم مهندسی 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")
}

شروع سریع

1

کیت را نصب کنید

زبان خود را برگزینید و با مدیر بستهٔ نشان‌داده‌شده در بالا نصبش کنید.

2

کلاینت را راه بیندازید

نمونه‌ای از کلاینت را با گواهی‌های خود بسازید. کیت، احراز هویت و مدیریت رمزینه را خودکار انجام می‌دهد.

3

فراخوان API بفرستید

از روش‌های نوع‌دار برای کار با APIهای OrbNET، OrbMesh و OrbGuard استفاده کنید.

4

رویدادهای بی‌درنگ را مدیریت کنید

برای به‌روزرسانی زنده در کانال‌های وب‌سوکت یا جریان‌های 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 و دیگر ویرایشگرها تکمیل خودکار و بررسی خطا هنگام کامپایل می‌گیرید.


گزینه‌های پیکربندی

همهٔ کیت‌ها همان گزینه‌های هسته‌ای پیکربندی را می‌پذیرند:

گزینهنوعپیش‌فرضتوضیح
baseURLstringhttps://api.orbai.worldنشانی پایهٔ API REST اوربنت
grpcAddressstringapi.orbai.world:50051نشانی سرور gRPC
guardURLstringhttps://guard.orbai.worldنشانی پایهٔ API REST اوربگارد
maxRetriesint3بیشینه تلاش دوباره برای ناکامی‌های گذرا
retryBaseDelayduration500msتأخیر پایه میان تلاش‌ها (نمایی با نوسان تصادفی)
timeoutduration30sمهلت پیش‌فرض درخواست
tokenRefreshBufferduration5mتازه‌سازی رمزینهٔ دسترسی این مدت پیش از انقضا
userAgentstringorbvpn-sdk/{lang}/{version}رشتهٔ دلخواه User-Agent

روش‌های احراز هویت

کیت‌ها از همهٔ روش‌های احراز هویت OrbVPN پشتیبانی می‌کنند:

ایمیل و گذرواژه

احراز هویت استاندارد مبتنی بر گواهی، همراه با مدیریت و تازه‌سازی خودکار رمزینهٔ JWT.

کلید API

احراز هویت سرویس به سرویس با کلیدهای API. بهترین گزینه برای یکپارچگی‌های OrbGuard و اسکریپت‌های سمت سرور.

OAuth 2.0

جریان‌های احراز هویت شخص ثالث از راه گوگل، اپل و گیت‌هاب. کیت‌ها کل جریان تغییرمسیر OAuth را مدیریت می‌کنند.

گواهی‌های mTLS

TLS دوسویه برای احراز هویت گره OrbMesh. مسیر گواهی و کلید کلاینت را به کیت بدهید.


کیت‌های جامعه

این کیت‌ها را جامعه نگهداری می‌کند و رسماً پشتیبانی نمی‌شوند، اما ممکن است برای زبان‌ها و چارچوب‌های دیگر سودمند باشند.

زبانبستهنگهدارندهوضعیت
Rustorbvpn-rs@communityبتا
Rubyorbvpn-ruby@communityآلفا
C# / .NETOrbVPN.SDK@communityبتا
PHPorbvpn/sdk-php@communityآلفا
Dart / Flutterorbvpn_sdk@communityبتا

سلب مسئولیت کیت‌های جامعه

کیت‌های جامعه را توسعه‌دهندگان شخص ثالث نگهداری می‌کنند و زیر پوشش پشتیبانی OrbVPN نیستند. با صلاحدید خودتان به کارشان ببرید و همیشه بررسی کنید که با تازه‌ترین تغییرهای API به‌روز باشند.


نسخه‌گذاری و سازگاری کیت‌ها

همهٔ کیت‌های رسمی از نسخه‌گذاری معنایی پیروی می‌کنند. نسخه‌های اصلی با نسخه‌های API متناظرند:

نسخهٔ کیتنسخهٔ APIوضعیت
v1.xAPI v1کنونی — پایدار
v0.xAPI v1 (بتا)منسوخ

تغییرهای شکننده

تغییرهای شکننده تنها در انتشارهای اصلی کیت‌ها وارد می‌شوند. انتشارهای فرعی و وصله‌ای همیشه با گذشته سازگارند. برای اعلان‌های به‌روزرسانی در سیاههٔ تغییرات OrbVPN مشترک شوید.


ساختن با کیت را آغاز کنید

زبان خود را برگزینید، کیت را نصب کنید و یکپارچگی خود را در چند دقیقه عرضه کنید. پشتیبانی کامل REST، gRPC و WebSocket همراه با مدیریت خودکار رمزینه.

دیدن مرجع API