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.
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/quickstart_cpp sample
// Every start: the purchased key once bought, the trial key until then.
std::string purchased_key = read_file("purchased-key.txt");
bool trial = purchased_key.empty();
auto c = create_client(trial ? TRIAL_KEY : purchased_key);
// the stored license; with none (the first run), validation activates: the trial starts
auto params = c->create_license_validation_params();
// ... params->set_license(stored) when license.dat holds one
auto result = c->validate_license(params);
// save the license whenever the SDK issues a new or renewed one
auto updated = result->get_updated_license();
if (updated)
std::ofstream("license.dat") << updated->serialize();
if (result->is_license_valid())
{
auto& current = updated ? updated : stored;
if (current->is_trial())
{
long long days_left = (current->get_expiration_date() - std::time(nullptr)) / 86400;
std::cout << "Trial: " << days_left << " day(s) left. To buy, run: quickstart_cpp <license-key>\n";
}
else
std::cout << "Licensed.\n";
}
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 several hardware characteristics with virtual machine detection, tolerant enough that a routine hardware 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
Free • No account needed • Demo app included