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.)
- SteamGuard
- 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 can view the documentation with the godoc
tool or
online on godoc.org.
You should also take a look at the following sub-packages:
trade
for tradingtradeoffer
for trade offerseconomy/inventory
for inventoriestf2
for Team Fortress 2 related things
To update go-steam to a new version of SteamKit, do the following:
go get github.com/golang/protobuf/protoc-gen-go/
git submodule init && git submodule update
cd generator
go run generator.go clean proto steamlang
Replace steamlang
with 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 $GOPATH/bin
/ protoc-gen-go
is in your $PATH
. You'll also need protoc
, the protocol buffer compiler. At the moment, we use Protocol Buffers 2.6.1 with proco-gen-go
-16256d3.
To compile the Steam Language files, you also need the .NET Framework on Windows or mono on other operating systems.
Apply the protocol changes where necessary.
Steam for Go is licensed under the New BSD License. More information can be found in LICENSE.txt.