No description
Find a file
2022-03-16 11:19:37 +01:00
client Fix package descriptions 2022-03-16 11:16:44 +01:00
util Fix package descriptions 2022-03-16 11:16:44 +01:00
.drone.yml Init commit 2022-02-17 22:33:58 +01:00
.gitignore Init commit 2022-02-17 22:33:58 +01:00
errors.go Fix error message of the ResponseTooLongError 2022-03-04 13:51:50 +01:00
go.mod Init commit 2022-02-17 22:33:58 +01:00
grcon.go Fix package descriptions 2022-03-16 11:16:44 +01:00
grcon_examples_test.go Fix typos 2022-03-05 17:31:46 +01:00
grcon_test.go Init commit 2022-02-17 22:33:58 +01:00
LICENSE Init commit 2022-02-17 22:33:58 +01:00
README.md Add information regarding origin and decesion of the project 2022-03-03 18:37:20 +01:00
size.go Init commit 2022-02-17 22:33:58 +01:00
types.go Add comment to the Packet struct 2022-03-16 11:19:37 +01:00

grcon

A basic Golang library for the RCON Protocol.

This is kind of a implementation of the rcon lib with a simplified API that should empower the user.

Features

  • Max control over the underlying connection.
  • Works on a slow internet connection.
  • Stable, reliable and tested implementation.
  • Small API surface.
  • Simple and powerfully error type system.
  • Good documented.
  • Offering different levels of abstraction.

Structure

Small overview of the structure and most important files.

Main

Inside the "main" package you will find the low-level implementation of the grcon Protocol. The starting point to get into it is the grcon.go File.

Util

This is the location for helper functions. It is a collection to facilitate the interaction with Packets and RemoteConsole.

Client

The spot to look into for a higher abstracted API to interact with a RemoteConsole. It simplifies the interaction and hides all complexity.

The currently only existing client is the SimpleClient but I can imagine to add game/server specific implementations in the future.

Motivation

Make the best std lib that provides a low-level implementation but also offers packages/ways to abstract the handling with single packets.

I was unhappy with the API of the rcon lib and decided to build a new package to not break the old API. I could also have opted to make a version 2 of the old lib, but I feel like the focus has shifted and it wouldn't be that clear with a new major version.

License

This lib is licensed under the MIT License and contains parts of the implementation from james4k/rcon.

Contributors

If you should encounter a bug or a missing feature don't hesitate to open an issue or even submit a pull-request.