Steam for Go
This library implements Steam's protocol to allow automation of different actions on Steam without running an actual Steam client. It is based on SteamKit2, a .NET library.
In addition, it contains APIs to Steam Community features, like trade offers and inventories.
Some of the currently implemented features:
- Trading and trade offers, including inventories and notifications
- Friend and group management
- Chatting with friends
- Persona states (online, offline, looking to trade, etc.)
- Team Fortress 2: Crafting, moving, naming and deleting items
If this is useful to you, there's also the go-steamapi package that wraps some of the official Steam Web API's types.
go get github.com/Philipp15b/go-steam
You should also take a look at the following sub-packages:
tradeofferfor trade offers
tf2for Team Fortress 2 related things
Updating go-steam to a new SteamKit version
To update go-steam to a new version of SteamKit, do the following:
go get code.google.com/p/goprotobuf/protoc-gen-go git submodule init && git submodule update cd generator go run generator.go clean proto steamlang
steamlang:nodebug if you want to exclude the
String() string methods
for the generated SteamLanguage enums. They make debugging much easier, but do increase binary size a bit.
Make sure that
protoc-gen-go is in your
$PATH. You'll also need
protoc, the protocol buffer compiler.
Apply the protocol changes where necessary.
Steam for Go is licensed under the New BSD License. More information can be found in LICENSE.txt.