Files

1.4 KiB

Dropworks SDK

Dropworks native game SDK (Steamworks replacement) and language bindings (#19).

The TypeScript package in src/ is the reference client for the REST contract served by a Drop instance:

POST /api/v1/dropworks/session      sign in
POST /api/v1/dropworks/achievement  unlock an achievement
POST /api/v1/dropworks/leaderboard  submit a leaderboard score
POST /api/v1/dropworks/presence     set rich presence

Layout

Path Status
src/ Reference TypeScript client (DropworksClient).
include/dropworks.h C ABI declarations; implemented by libdropworks.
bindings/rust/ dropworks crate: async client over a pluggable transport, plus the C ABI cdylib (--features c-abi). REST session/achievement/leaderboard/presence.
bindings/c/ Links libdropworks and include/dropworks.h.
bindings/csharp/ Dropworks.Client P/Invoke wrapper over the C ABI, with a buildable smoke test.
bindings/gdscript/ Godot 4 HTTPClient binding (DropworksClient) with a headless test.

The server side of this contract is implemented in Heretek-Games/drop (server/server/api/v1/dropworks/, commit 45515274).

Build

npm ci
npm run typecheck
npm run build
npm test

Rust scaffold:

cargo test --manifest-path bindings/rust/Cargo.toml