Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 - 2026-09-25¶
Added¶
CLI:proxycommandCLI: Russian, German, Italian, Spanish, Czech, and Chinese localization with English fallbackCLI: environment-variable configuration- container image with the
a2sCLI a2s/server: package for serving A2S queries over UDPa2s/proxy: package for cached and passthrough A2S proxyinga3sb: binary rules encoding and A2S_RULES page generationappid: public curated Steam AppID registry for A2S-compatible gamesa2s:QueryMetaandGetInfoWithMetafor query transport metadataa2s: separateAppIDandGameIDfields withInfo.EffectiveID()a2s: lossless logicalPacketcodeca2s: ordered, duplicate-preserving A2S_RULES entries with raw and parsed views
Changed¶
- minimum supported Go version is now 1.25
CLI: interactive tables adapt to terminal widthCLI: mod and DLC tables use compact IDs when full URLs do not fitCLI: compact ping output and optional summary suppressionCLI: strict command and argument validationCLI:all --format jsonemits one structured JSON documentCLI: unified build and version metadataa2s: request and response types are separated intoQueryTypeandResponseType, replacingFlaga2s: query methods acceptcontext.Contexta2s: query latency covers complete logical requests, including challenge retries and split responsesa2s: address-aware client constructors, options, accessors, and idempotent lifecycle managementa2s: player query methods return slices directlya2sanda3sb: shared bounds-checked wire decodera2s: default UDP receive buffer increased to 8192 bytesa3sb: automatic A2S/A3SB rules detection from a single A2S_RULES response
Fixed¶
CLI: generic A2S_INFO keywords are preserved in JSON outputCLI: interrupted ping queries stop before final statistics are printeda2sanda3sb: malformed and truncated responses no longer cause panicsa2s: reordered split responses are assembled correctlya2s: inconsistent split fragments are rejected and response allocations are boundeda2s: bounded challenge transactions and obsoleteGetChallengeretry behaviora2s: concurrent queries on a single client are serialized safelya2s: SourceTV fields, server type and visibility keys, and signed player scoresa2s: empty A2A_PING acknowledgements are accepteda2s/proxy: cache refresh and recovery behaviora2s/proxy: global and per-client rate-limit accountinga2s/proxy: bounded per-client rate-limit statea2s/proxy: fatal poller errors are reported instead of silently stopping refresh loopsa3sb: deterministic DLC bit and hash orderinga3sb: DayZ-specific field parsinga3sb: rules page ordering and malformed page-set validationkeywords: unknown enum and platform values are preserved
Removed¶
CLI: misleading--format rawmodeCLI: redundant--skip-inforules optiona2s: ambiguousInfo.IDfielda2s: transport-onlyInfo.Pingfieldgithub.com/woozymasta/steamdependency in favor of the local AppID registry
0.3.2 - 2026-03-07¶
Added¶
a2sexportedErrChallengeLoopandErrQueryUnsupportedfor clearer handling of non-standardA2S_PLAYER/A2S_RULESresponses
Fixed¶
a2stolerate truncated GoldSourceA2S_INFOresponses where trailingVACand/orbotsbytes are missinga2simprove UDP response handling by skipping unrelated or truncated datagrams during packet reads and split-packet assembly
Changed¶
a2sreturn clearer diagnostics for unsupported queries (e.g.A2S_INFOreturned forrules) and challenge-loop behavior
0.3.1 - 2026-01-31¶
Added¶
a2ssupport bz2-compressed multi-packet responsesa2ssupport split (multi-packet) responses (rewritten for correctness and reliability)
Fixed¶
a2savoid panics on truncated UDP reads and tolerate missing EDF byte inA2S_INFO
Changed¶
a2sincreased default read buffer size to 4096 bytes to reduce UDP truncation risk
0.3.0 - 2025-12-30¶
Added¶
a2spackage now exports 50+ specific error types for detailed error handlinga2sCLI unifieda2s-clianda3sb-cliinto singlea2scommand with subcommands
Changed¶
a2sanda3sbreduced memory allocations and memory usage by up to 3-4x through buffer reusea2simproved error messages with context usingerrors.Join
0.2.3 - 2025-08-26¶
Added¶
a3sbDayZ Badlands DLC ID and AppID
Changed¶
- updated golang ci lint and fix exported code comments
- updated direct dependencies
0.2.2 - 2025-01-26¶
Added¶
a3sb-clishow keywords for Arma3 in info request
Changed¶
keywordsfix parse for empty string
0.2.1 - 2025-01-13¶
Added¶
a2saddNewWithString()new for init connection byip:portstringa2s-clianda3sb-cliability to specify both thehostandportas separate arguments or as onehost:port
Changed¶
a2s-clifixed json output
0.2.0 - 2025-01-13¶
Refactoring and Simplification
Added¶
keywordsnew parser for Arma3keywordstests for parsingkeywords/typespackage with new types for Arma3GameType,ServerLangandPlatform- missed documentation for packages
a3sb-cliping supporta2snew functionNewWithAddr()use*net.UDPAddras argument
Changed¶
- moved
ServerLangstruct to packagepkg/keywords/types - moved packages
bread,tableprinterto internal - ping ring buffer separate as internal package
- cli args parse now with
jessevdk/go-flags a2sfunctionCreateClient()replaced withCreate()and use*net.UDPAddras argument
Removed¶
- heavy and unnecessary logging packages and CLI parameter parsing
- appid package migrated to woozymasta/steam
0.1.0 - 2025-01-07¶
Added¶
- First public release