Перейти к содержимому

SDK

Встройте ForestVPN из исходников.

SDK с исходным кодом для Apple и Android, стабильный C ABI для всего остального и сгенерированные клиенты API для TypeScript, Rust и Swift. Подключите пакет, соберите его из исходников и встройте mesh и туннель прямо в своё приложение.

// Apple — source Swift package (UniFFI). Add the package, import the kit.
// Package.swift → dependencies:
//   .package(url: "https://github.com/forestvpn/forestvpn-apple", from: "1.0.0")

import ForestVPNKit

// ForestVPNKit + ForestVPNFFI compile into your app target.
// Nothing prebuilt to vendor — iOS 18 / macOS 14 / tvOS 17.

Apple поставляется как Swift-пакет с исходным кодом, собранный через UniFFI; Android — как JNI, собираемый из исходников. Никаких бинарных фреймворков подключать не нужно — движок собирается вместе с вашим приложением.

Семейство SDK

Один движок, обёрнутый под каждую платформу.

Apple — ForestVPNKit

исходный SwiftPM

Swift-пакет, собранный через UniFFI. Добавьте URL пакета, импортируйте ForestVPNKit — и движок mesh и туннеля компилируется прямо в таргет вашего приложения. Никакого бинарного фреймворка подключать не нужно.

  • Семейство продуктов ForestVPNKit + ForestVPNFFI
  • Swift-биндинги, сгенерированные через UniFFI (UniFFI 0.31)
  • iOS 18 · macOS 14 · tvOS 17
  • Клиенты API Consumer, Console и Admin в комплекте

Открыть быстрый старт для Apple

Минимальные версии платформ Apple — семейство ForestVPNKit собирается под эти пороги.
ПлатформаМинимальная ОСПродукт
iOSiOS 18ForestVPNKit
macOSmacOS 14ForestVPNKit
tvOStvOS 17ForestVPNKit

Android — биндинги JNI

JNI · из исходников

Биндинги JNI, собираемые из исходников вместе с вашей сборкой Gradle. Под капотом работает платформенно-независимый движок client-core — готового пакета подключать не нужно.

  • Крейт биндингов forestvpn-android-jni
  • Собирается из исходников в вашей сборке
  • Движок client-core под капотом
  • Поверхность для Kotlin

Открыть быстрый старт для Android

C ABI + Dart — forestvpn_client.h

C ABI · поставляемый заголовок

Стабильный C ABI с поставляемым заголовком forestvpn_client.h. Подключайте его из Dart, Go или любого языка, понимающего C: откройте клиент, читайте статус в JSON, управляйте туннелем, подписывайтесь на события.

  • forestvpn-client-ffi — сам C ABI
  • Поставляемый заголовок: forestvpn_client.h
  • fvpn_client_open · fvpn_client_status_json · fvpn_client_close
  • Биндинги Dart FFI через fvpn_init_dart_api

Открыть быстрый старт для C ABI

Сгенерированные клиенты API

сгенерированы из OpenAPI

По одному типизированному клиенту на каждую роль-плоскость, генерируются заново из зафиксированных спецификаций OpenAPI. Укажите ему источник API и авторизуйтесь ключом, привязанным к проекту.

  • TypeScript — @forestvpn/consumer, console и admin-api
  • Rust — крейты api-client для consumer, console и admin
  • Swift — клиенты ForestVPN Consumer, Console и Admin API
  • Регенерируются командой task gen:api-clients

Смотреть клиенты API

client-core — движок

платформенно-независимый

Платформенно-независимый Rust-движок, который оборачивает каждый SDK — слой сокетов, сетевой стек в пространстве пользователя, MagicDNS и лестница транспортов, подстраивающаяся под сеть, в которой она работает.

  • forestvpn-client-core
  • Слой сокетов magicsock + netstack в пространстве пользователя
  • Резолвер MagicDNS
  • Адаптивные транспорты (прямой UDP, DERP, QUIC-DERP)

Читать руководство по client-core

Выберите язык и начинайте строить.

Каждый SDK оборачивает один и тот же движок и обращается к одному и тому же Infrastructure API. Читайте документацию, подключайте пакет и делайте первый вызов.