FOR DEVELOPERS / SDK & API
Read verified resources.
API documentation is public for every integration path. License labels below identify the terms for using packages and obtaining implementation source; they do not restrict reading these docs. Use the published Reader packages when your product needs to inspect or download an AmoosedWeb site’s carrier-backed files. The compiler CLI creates those sites. See the complete Reader API signatures and records.
API access and licensing
Public documentation API signatures, examples, and behavior descriptions are readable by everyone. Commercial license at threshold Updated terms apply to AmoosedWeb code, SDKs, tools, and protocol implementations when the user or product reaches EUR 1 trillion annual revenue. Source access agreement Private implementation source requires a separate written agreement and payment.
| API surface | Read the docs | Obtain and use the implementation |
|---|---|---|
| Node.js Reader, .NET Reader, compiler CLI | Public documentation Full Reader reference and CLI reference | Published packages carry their own licenses; updated future versions use the same EUR 1 trillion threshold. Earlier versions retain their shipped terms. |
| Native C++ Reader headers and prebuilt libraries | Public documentation Complete public headers and C++ API; C ABI reference; plain C quickstart | Enterprise license at threshold No fee while both user and product are below EUR 1 trillion annual revenue; an enterprise agreement is required when either reaches it. Current binaries are local review previews. |
| Unreal subsystem header and prebuilt Win64 module | Public documentation Integration guide and complete subsystem header | Same commercial threshold The Unreal 5.8 / Win64 review package is not yet a public download. |
| Protocol specifications and developer examples | Public documentation Technical references | Protocol and developer examples license uses the same threshold. |
| Private implementation source | Public documentation The interfaces above are documented without member access. | Separate source-access agreement Source archive through the developer members area after agreement and payment. |
The standard enterprise price, absent a different negotiated price, is EUR 133,700,000 per year per product using covered technology, including licensed source. The current 0.28 ABI and Unreal integration remain previews; the Unreal plugin currently supports hosted catalogues and public item fetches on Win64. The SDK package contains draft terms for review.
Native .NET preview Binary SDK terms apply Local review preview
The separate AmoosedWeb.Reader.NativePreview package uses the prebuilt Windows x64 and Linux x64 GameReader libraries and has no embedded CLI runtime. Its complete public method reference and C ABI signatures are available to everyone. The review package is not published yet. Binary use follows the GameReader SDK license; implementation source is issued separately to paid licensees through the members area.
Node.js Reader SDK Published package
Install amoosedweb-reader in a Node.js 22+ ESM project. The package exports four functions. The next Windows x64 package build from this checkout uses the bundled C/C++ Reader through Node-API; Linux and macOS retain the JavaScript Reader. Check the installed package version before relying on that backend.
| Function | Purpose |
|---|---|
openRemoteSite(site, options?) | Resolve and verify the site index; return a session for subsequent calls. |
listRemoteResources(session) | Return resource metadata: path, bytes, SHA-256, MIME type, access, and delivery. |
downloadRemoteResource(session, path, output) | Verify and save one resource to a new local path; return path, byte count, and SHA-256. |
downloadRemoteSite(session, outputDirectory) | Download the indexed resources into a directory; return an array of download results. |
npm install amoosedweb-reader
node reader.mjs https://your-site.example/import {
openRemoteSite,
listRemoteResources,
downloadRemoteResource,
} from 'amoosedweb-reader';
const site = process.argv[2];
if (!site) throw new Error('Usage: node reader.mjs https://site.example/');
const session = await openRemoteSite(site);
const files = listRemoteResources(session);
for (const file of files) {
console.log(`${file.path} ${file.bytes} bytes ${file.access}`);
}
const firstPublicDownload = files.find(file =>
file.access === 'public' && file.delivery === 'download');
if (firstPublicDownload) {
const result = await downloadRemoteResource(
session, firstPublicDownload.path, './download.bin');
console.log(`Saved ${result.bytes} verified bytes to ${result.path}`);
}Download the complete Node.js example. It accepts optional index and member key file paths.
Options and results
openRemoteSite accepts indexKeyFile for a privately delivered .amwkey or index ICO, and memberKeyFile for an .amwmember or 64-character hex file. It also supports credential, a 32-byte contentKey, and an optional fetcher for advanced integrations. Provide only one source for each key. The site URL must use HTTPS, except local HTTP at localhost or 127.0.0.1.
const session = await openRemoteSite('https://your-site.example/', {
indexKeyFile: './invitation.amwkey',
memberKeyFile: './member.amwmember',
});
const results = await downloadRemoteSite(session, './recovered');Downloads verify stored parts and the reconstructed file before a destination appears. Existing destination files are never overwritten. Keep key files outside your repository and logs. A protected resource without a matching member key fails.
.NET Reader SDK Published package
Install AmoosedWeb.Reader into a .NET 10 project. It brings in the matching AmoosedWeb.Native dependency. The next Windows x64 package build uses the native C/C++ reader by default and omits the embedded CLI; an explicit executable constructor remains available for a separately installed compatible CLI. Check the installed package version before relying on that default.
dotnet new console -n AmoosedReaderExample
cd AmoosedReaderExample
dotnet add package AmoosedWeb.Readerusing AmoosedWeb.Reader;
var reader = new AmoosedReader(new Uri("https://your-site.example/"));
var files = await reader.ListAsync();
foreach (var file in files)
Console.WriteLine($"{file.Path}: {file.Bytes} bytes ({file.Access})");
var firstPublicDownload = files.FirstOrDefault(file =>
file.Access == "public" && file.Delivery == "download");
if (firstPublicDownload is not null)
await reader.DownloadAsync(firstPublicDownload.Path, "download.bin");View the complete C# example and setup notes.
| Method | Return value |
|---|---|
ListAsync(CancellationToken) | IReadOnlyList<AmoosedResource> with path, bytes, hash, MIME, access, delivery. |
DownloadAsync(resourcePath, outputPath, CancellationToken) | AmoosedDownload with output path, bytes, and hash. |
DownloadAllAsync(outputDirectory, CancellationToken) | A list of verified download results. |
Pass indexKeyFile and memberKeyFile to the constructor for private editions. A second constructor accepts an explicit native executable path for custom installations or other platforms. The bundled native dependency currently supports Windows x64.
var reader = new AmoosedReader(
new Uri("https://your-site.example/"),
indexKeyFile: "invitation.amwkey",
memberKeyFile: "member.amwmember");Compiler and Reader CLI Published packages
Install the npm compiler on Node.js 22+, or the .NET tool on Windows x64 with .NET 10. Both expose amw.
amw help
amw help init
amw init my-site
amw remote-list https://your-site.example/
amw remote-get https://your-site.example/ /amoosed.com/app/files/data.zip data.zip
amw remote-pull https://your-site.example/ ./recoveredFor private indexes, append an index key file to the remote command. For member content, set AMW_MEMBER_KEY_FILE to a local key file. The plain-text command reference and agent reference cover the project layout and remaining commands.