Skip to the content.

Client SDK Overview

For the full API reference with code examples, see the SDK Guide.

What the SDK Does

LemonadeNexusSDK handles everything a client application needs to join and participate in the mesh VPN:

The mesh dataplane is in-process userspace BoringTun plus a smoltcp netstack: no kernel module, no TUN device, no elevated privileges, on every platform.

Language Bindings

Language Interface Header
C++ lnsdk::LemonadeNexusClient class LemonadeNexusSDK/LemonadeNexusClient.hpp
C ln_* FFI functions LemonadeNexusSDK/lemonade_nexus.h
Dart/Flutter Generated FFI wrapper (lib/src/sdk/) Consumes the C ABI

The shared library exports only the ln_* C API (hidden visibility); the C++ class and the Dart wrapper both sit on top of it.

Authentication Status

Method Status
Ed25519 challenge-response Primary. Requires an identity (set_identity / ln_set_identity). Auto-registers new pubkeys on first use.
Passkey / WebAuthn Backup. Challenge bound to the user; assertion verified server-side.
Password Deprecated. The server stub always fails; the SDK keeps the functions for compatibility.
Token link One-time device-link tokens for adding devices to an account group.

Linking

Build the shared library first:

cmake --build build --target LemonadeNexusSDKShared --parallel

For a C/C++ consumer, link against the shared library (or the static LemonadeNexusSDK target when building inside this CMake project):

find_library(LEMONADE_NEXUS_SDK liblemonade_nexus_sdk REQUIRED)
target_link_libraries(myapp PRIVATE ${LEMONADE_NEXUS_SDK})

The shared library is self-contained: OpenSSL, libsodium, BoringTun, and the netstack are embedded.

Platform Notes