SDKs & Bibliotheken

Acht Sprachen, eine API.

Native SDKs für alle wichtigen Plattformen — JS/TS auf npm veröffentlicht, weitere als Quellcode mit geplantem Registry-Publishing. Alle gegen denselben Test-Vektor-Satz validiert.

Tier 1 — Volle API-Abdeckung

Alle API-Operationen, dedizierte Test-Suite. Status-Badge je SDK beachten.

JavaScript / TypeScript

Registry: npm

VeröffentlichtRS256 / ES256 / EdDSA

TypeScript-SDK fuer Node.js und Browser. Voll typisiert, Tree-shakable.

Installation

yarn add @xcess/sdk

Beispiel

import { Xcess, verifyLicense } from '@xcess/sdk';

const { valid, payload } = await verifyLicense({
  jwt: process.env.LICENSE_JWT!,
  vendorCode: 'acme',
});

Python

Registry: PyPI

Quellcode verfügbarPython 3.9+

Python 3.9+ Client mit asyncio-Support, Pydantic-Modelle.

Installation

# Coming soon: pip install xcess-sdk
# Source: github.com/xcess-ch/sdk-python

Beispiel

from xcess import Xcess

xcess = Xcess()
result = xcess.verify_license(
    jwt=os.environ['LICENSE_JWT'],
    vendor_code='acme',
)

Java

Registry: Maven Central

Quellcode verfügbarJava 11+

Java 11+ SDK fuer JVM-Backends — Maven Central und Gradle.

Installation

<!-- Coming soon on Maven Central -->
<!-- Source: github.com/xcess-ch/sdk-java -->

Beispiel

Xcess xcess = Xcess.builder()
    .baseUrl("https://xcess.ch")
    .build();

VerifyResult result = xcess.verifyToken(
    System.getenv("LICENSE_JWT"),
    "acme"
);

Go

Registry: pkg.go.dev

Code-komplettGo 1.21+

Go 1.21+ Modul — context-aware, idiomatisches Error-Handling.

Installation

# Coming soon: go get github.com/xcess-ch/xcess-sdk-go

Beispiel

import xcess "github.com/xcess-ch/xcess-sdk-go"

client := xcess.New(xcess.Config{
    BaseURL: "https://xcess.ch",
})

result, err := client.VerifyToken(jwt, "acme")

.NET / C#

Registry: NuGet

Code-komplett.NET 6+

.NET 6+ NuGet-Paket fuer C#, F# und VB.NET.

Installation

# Coming soon: dotnet add package Xcess.Sdk

Beispiel

using Xcess.Sdk;

var config = new XcessConfig {
    BaseUrl = "https://xcess.ch"
};

var client = new XcessClient(config);
var result = await client.VerifyTokenAsync(jwt, "acme");

Tier 2 — Kern-Funktionalität

Verifikation, Heartbeat, Public-Key-Refresh. Status-Badge je SDK beachten.

PHP

Registry: Packagist

Quellcode verfügbarPHP 8.1+

PHP 8.1+ Composer-Paket. Verifikation und Heartbeat.

Installation

# Coming soon: composer require xcess/sdk
# Source: github.com/xcess-ch/sdk-php

Beispiel

use Xcess\Xcess;

$xcess = new Xcess(['baseUrl' => 'https://xcess.ch']);
$result = $xcess->verifyToken($jwt, 'acme');

Rust

Registry: crates.io

Code-komplettRust 1.74+

Rust Crate (no_std-kompatibel). Verifikation und JWT-Decode.

Installation

# Coming soon: cargo add xcess

Beispiel

use xcess::Xcess;

let client = Xcess::new("https://xcess.ch");
let result = client.verify_token(&jwt, "acme")?;

C++

Registry: CMake / vcpkg

Quellcode verfügbarC++17 + OpenSSL 3

Header-only C++17 Bibliothek fuer Embedded und Desktop.

Installation

# Source: github.com/xcess-ch/sdk-cpp
add_subdirectory(xcess)
target_link_libraries(myapp PRIVATE xcess)

Beispiel

#include <xcess/xcess.hpp>

xcess::Xcess client("https://xcess.ch");
auto result = client.verifyToken(jwt, "acme");

Test-Vektoren — kompatibilitätsgesichert

Jedes SDK wird gegen denselben kanonischen Vektor-Satz validiert. So bleiben alle Implementierungen zu jedem Zeitpunkt bit-für-bit kompatibel.

  • 15 Referenz-Vektoren über 3 Algorithmen (RS256, ES256, EdDSA)
  • Edge-Cases: Clock-Skew, kid-Rotation, Signatur-Manipulation
  • Gemeinsames test-vectors/ Verzeichnis für alle SDKs
  • Jedes SDK nutzt denselben Test-Harness für sprachübergreifende Parität

Bereit fuer die Integration?

Starten Sie mit einem Sandbox-Account oder durchstoebern Sie die API-Referenz.