FOR DEVELOPERS / NATIVE PREVIEW

Native C++ Reader integrations.

The native C++ Reader verifies site resources for desktop applications, services, tools, and games. Its current review package is named GameReader, and the general CMake target is AmoosedWeb::NativeReader. Game sessions and the Unreal plugin are optional integrations. Public headers and prebuilt libraries are documented openly; implementation source access is a separate licensed member benefit.

Distribution and source access

Public documentation All native API signatures and integration notes are open. Commercial license at threshold The threshold covers AmoosedWeb code and protocol implementations, including native binaries. Separate source agreement Private implementation source requires a written agreement and payment.

There is no license fee while both the user and product have annual revenue below EUR 1 trillion. If either reaches EUR 1 trillion, an enterprise agreement is required. The standard fee absent a different negotiated price is EUR 133,700,000 per year per product. The preview package includes draft terms for review before public publication.

The planned public C++ packages will contain required headers and platform-matched prebuilt libraries, without implementation source. Current Windows x64 and Linux x64 archives are local review packages. A Windows-only package gate now produces a three-artifact C++ and .NET review set with clean installed consumers, Reader/CLI parity, damaged-carrier checks, and a verified manifest, without requiring a Linux build. Windows x64 remains the first publication target. Companies with a paid source agreement receive a separate member key for the encrypted source archive on this site. Developer member access →

C++17 native Reader Binary SDK terms apply

The current core verifies hosted favicon indexes, external .amwkey or packed ICO credentials, byte-addressable and PNG low-bit resource parts, complete resource hashes, and public or member data. It also validates game catalogues and bounded experiments. Windows builds can use the SDK's WindowsHttpHost for bounded same-origin requests and WindowsCryptoHost for SHA-256 and AES. Windows builds can use WindowsFileOutput to stage a verified resource in a new sibling file without replacing an existing destination. The Linux source build now has CurlHttpHost, OpenSslCryptoHost, PosixFileOutput, and PosixMediaDecoder; it opens a generated hosted index and saves byte-addressable, PNG low-bit, sparse-frame, and WAV tone public resources exactly without replacing existing targets. Linux now exposes the same preview C ABI site and game functions, but a source-free Linux x64 review ZIP now passes a clean extracted CMake consumer and exact-byte generated-site test; wider parity and release approval remain before a public SDK is offered. Your product chooses a trusted absolute output path and runs synchronous requests on a worker thread.

find_package(AmoosedWebGameReader 0.28 CONFIG REQUIRED)
target_link_libraries(your_project PRIVATE AmoosedWeb::NativeReader)

For a project that needs one verified hosted resource, use the general native Reader example. It uses the C++ Reader and platform adapters without a game catalogue. The installed package also keeps AmoosedWeb::GameReader as a compatibility target. For the plain C library, follow the C Reader quickstart.

#include <AmoosedWeb/Reader.hpp>

bool FetchVerifiedResource(amoosed::HttpHost& http,
                           amoosed::CryptoHost& crypto,
                           amoosed::OutputHost& output,
                           amoosed::MediaDecoder& media,
                           std::string& error) {
  amoosed::IndexResult index;
  if (!amoosed::open_hosted_index(http, crypto, index, error)) return false;
  amoosed::DownloadResult result;
  return amoosed::download_resource(index.app, "/amoosed.com/app/data.bin",
                                     nullptr, http, crypto, output, result,
                                     error, &media);
}

Download the complete native resource example. Game projects can additionally use the optional GameSession example. The Windows file adapter has been tested with a no-overwrite destination race and cancellation cleanup. The WinHTTP adapter has been tested against a local loopback carrier site, including verified range, suffix, and whole-carrier reads. HTTPS on a production host and end-user game lifecycle still need target testing.

Windows and Linux builds decode PNG low-bit, AWF1/AWF2 sparse-frame, and WAV tone carriers. Other platforms still need media decoder adapters. Test native integrations with damaged bytes, cancelled reads, and the exact target platform.

Verified bytes in memory Binary SDK terms apply

Native applications can implement OutputHost to keep a small verified resource in memory. The complete C++ memory example caps the buffer at 16 MiB, exposes it only after the Reader commits the verified resource, and clears partial bytes on failure. It compiles against the same prebuilt C++ library as the file example. Run the synchronous read on a worker thread and use the bytes only after success. The preview C ABI also offers a bounded caller-owned memory read of up to 64 MiB, with a cancellable operation form. Its 1.0 contract retains this capability and still needs the final ABI compatibility gate.

Unreal Engine plugin Binary SDK terms apply

The current project-installable Runtime plugin exposes a UGameInstanceSubsystem with a Blueprint-callable Configure method for site origin, game ID, and game version. With the matching Win64 SDK installed at build time, it offers RefreshHostedCatalogue, RefreshExternalCatalogue, GetCatalogueRevision, GetItemIds, GetCatalogueItems, FetchPublicItem, and CancelActiveOperation. Worker-thread results are delivered through OnCatalogueRefreshed and OnItemFetched on the game thread. Follow the Unreal integration walkthrough. Unreal 5.8.4 editor tests checked verified catalogue metadata and exact public bytes from hosted and externally indexed local carriers. A source-free Win64/UE 5.8 review ZIP includes the native DLL and passed clean editor and shipping consumer builds plus an editor module-load check. This preview is not yet a public download; packaged gameplay and other access modes remain under test.

This Windows preview uses the C ABI's WinHTTP and crypto implementation for verification. The verified output is saved under the game's Saved/AmoosedWeb/ directory without replacing an existing file. The Unreal subsystem accepts an external-index credential file for catalogue refresh. Member downloads are not yet exposed. Downloaded content is data interpreted by logic already compiled into the game; this plugin will not hot-load Blueprint or executable code.

Smaller .NET Reader direction Native preview terms apply

The current registry .NET Reader uses the matching amw CLI. The next Windows x64 package build from this checkout uses the C/C++ Reader by default and retains an explicit CLI constructor. The opt-in AmoosedWeb.Reader.NativePreview review package exercises listing and downloads through the smaller native library on Windows and Linux x64. It depends on the matching prebuilt binary package and contains no amw.exe. Its full public API reference is available without member access; the review package is not published yet. Replacing that with the C++ core requires a stable interop boundary and feature parity with the published Reader before changing the NuGet package.

CapabilityC++ previewPublished Node / .NET Reader
Hosted and external indexes, including ICOYesYes
Append, PNG chunk, MP4 UUID partsYes, with host adaptersYes
PNG pixel, WAV tone, sparse-frame partsPNG low-bit, AWF1/AWF2, and WAV tones on Windows and LinuxYes
Windows cryptographySDK component using CNGBundled native CLI
Windows transport and atomic outputWinHTTP loopback and no-overwrite file tests passBundled native CLI
Full stable C ABI / .NET interopWindows and Linux hosted/external preview, including PNG low-bit, AWF1/AWF2, and WAV tonesCLI process boundary

The migration sequence is to validate the Windows decoders and file output on target hosts, add equivalent adapters on other supported platforms, extend and freeze the native ABI, run the same resource fixtures through Node and .NET, then replace the native package only when all existing public APIs behave the same. That avoids silently narrowing what the .NET Reader can open.

Native toolchain sequence

The general C++ Reader and native compiler are developer-tool priorities for static hosting. A separate AmoosedWeb Game SDK may wrap game catalogues, experiments, and engine integration later. The distributed compiler still uses an embedded Node.js runtime today; native compiler work must reach command, format, security, and release parity before that dependency can be removed. A browser WebAssembly build of the portable native core is a later candidate, with a JavaScript host adapter and separate browser parity gate. The native core can write a self-contained standalone WAV exchange with its separate media key, and preview Reader revision 16 can recover one through a bounded plain-C function. The downloadable C example runs against clean Windows and Linux SDK installs. An optional GStreamer plugin is proposed to use that C boundary inside string-described media pipelines; no plugin is available today. Read the native Reader and compiler roadmap.