finds.dev← search

// the find

rlabrecque/Steamworks.NET

★ 3,616 · C# · MIT · updated Aug 2026

Steamworks wrapper for Unity / C#

Steamworks.NET is a low-level C# wrapper around Valve's native Steamworks API, mirroring the C++ interface almost 1:1 so Valve's own docs apply directly. It targets Unity devs and any C# app that needs Steam integration (achievements, matchmaking, workshop, networking, etc.) on Windows, macOS, and Linux.

The bindings are code-generated by a Python script that parses the actual Steamworks SDK headers (CodeGen/steam/*.h), so the wrapper tracks Valve's API instead of drifting from hand-maintained bindings. It ships as a proper Unity Package Manager package with native plugins already organized per platform (androidarm64, linuxarm64, macOS bundle, win32/64 DLLs) — no manual plugin import wrangling. It's been maintained for years against current SDK versions (building against 1.65 as of this push) with a permissive MIT license.

It's a literal C API surface in C# clothing — callback registration and dispatch are manual, there's no async/await or event-based idiom layered on top, so you're writing the same boilerplate Valve's C++ samples use. The README itself documents nothing about actual usage; you're routed to an external docs site and four separate sample repos just to see a working call. Native binaries (steam_api.dll, libsteam_api.so, the macOS bundle) are checked directly into the repo, which bloats clone size unnecessarily. There's no visible test suite in the tree, which makes sense since it can't run without a live Steam client, but it also means codegen regressions rely entirely on manual/community catch.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →