Downloads
One package works for every platform. Each format carries the compiled SDK for Windows x64 and Linux x64, headers, CMake package config, the .NET assembly, and samples in C++, C# and VB.NET. Full documentation lives in the online docs.
| Platform | Package | |
|---|---|---|
| Windows x64 + Linux x64 | EXE installer - setup wizard with automatic installation (per-user install needs no admin rights) | Download |
| Windows x64 + Linux x64 | MSI installer - Windows Installer package for enterprise deployment | Download |
| All platforms | ZIP archive - portable; Windows x64 and Linux x64 binaries side by side, build anywhere with CMake | Download |
| .NET (all platforms) | NuGet package | Download |
Verify your download against SHA256SUMS.txt. Integration docs: install, C++ quickstart, .NET / VB.NET quickstart. Signed Windows installers are on the way, and will replace these downloads in place.
On a paid plan? The source-code edition of the SDK (the same package plus the client library source) is available from the licensing console.
Activate and validate in a few lines
From the included samples/cpp/basic_cpp sample
#include "softactivate/sws_licensing.h"
// create a licensing client instance
auto client = sws::licensing::client::create(endpoint_url);
client->set_metadata("trusted_domain", trusted_domain);
client->set_vendor_id(VENDOR_ID);
client->set_license_key(CUSTOMER_LICENSE_KEY);
// validate: activates online the first time, then validates the
// locally-stored, cryptographically-signed license offline
auto params = client->create_license_validation_params();
auto result = client->validate_license(params);
if (!result->is_license_valid())
{
// the status tells you WHY: expired, revoked, bound to another
// machine, subscription payment required...
handle_invalid(result->get_status());
}
// persist the (possibly updated) license for offline validation
if (auto updated = result->get_updated_license())
save_license(updated);
What the SDK does for you
Offline validation
Licenses are signed documents. The SDK validates them locally against a certificate chain anchored in public PKI, with lease-based re-checks you control.
Hardware fingerprinting
Device fingerprints combine CPU, disk, MAC address and VM detection, weighted and tolerant enough that a RAM upgrade won't break your device limits.
Deactivation / move machine
A deactivation call releases the seat, so your customer can move to new hardware on their own. No support ticket needed.
Precise validation status
Expired, not yet valid, revoked, bound to another device, payment required - each one is a distinct status, so your app can show the right message for each.
TLS always on
Certificate verification is enforced in every build configuration. There's no debug mode that quietly skips it.
Clean packaging
One package covers every platform: CMake package config (find_package(sws)) for C++, a NuGet package for .NET, and working samples in C++, C# and VB.NET. Full documentation is online.
Frequently Asked Questions
Have more questions?
Contact UsShip licensing this week, not this quarter.
Create a free account, explore the seeded sandbox, and activate your first license - all before your coffee gets cold.
No credit card to sign up
From signup to activation