parsec

package module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2026 License: MIT Imports: 0 Imported by: 0

README

parsec

Load-test result primitives for Go.

The Gatling text decoder is the first piece to land. Everything below it is still a backlog; this file says what is being built and why, and marks what works today. Progress is visible in the milestones, each small and ending in a tag.

The problem

Gatling stopped generating stats.json and global_stats.json in 3.13.5, and since 3.13.0 it writes simulation.log in an undocumented binary format that only the exact same Gatling version can read. A run archived last year cannot be reported on today, and no tool outside Gatling can read a run at all. Every other load-testing tool leaves its results in a shape of its own, so anything that wants to compare two of them starts by writing a parser.

What it will be

One canonical model for the results of a load test, a decoder per tool that produces it, and a statistics engine that answers the questions a report asks. Three consumers are waiting for it: the galaxio report commands in galaxio-cli, result ingestion in the Galaxio platform, and the live-metrics sidecar.

Sources, in the order they are planned
Source Formats Milestone
Gatling 3.11.5, 3.12.x text simulation.log v0.0.2
Gatling 3.13.0 … 3.15.x binary simulation.log v0.0.5
JMeter JTL, CSV and XML v0.3.0
k6 metric output and end-of-test summary v0.4.0
Locust CSV statistics v0.5.0
Yandex.Tank, Pandora phout v0.6.0

The Gatling log format is internal to Gatling, undocumented, and has already changed once. Every read will be version-gated: a version below the supported range is refused, and an unknown newer one decodes with a warning.

Packages
gatling/       version type, version gate and the errors every Gatling codec shares  (v0.0.2)
gatling/text/  the text simulation.log codec for 3.11.5 and 3.12.0                   (v0.0.2)
model/         canonical result types shared by every source                         (planned)
stats/         counts, timings, percentiles, ranges, per-interval series             (planned)

model and gatling depend on the standard library only, and CI checks that.

Status

gatling/ and gatling/text/ decode a Gatling 3.11.5 or 3.12.0 text simulation.log from a stream, in bounded memory, gated on the version the log names. They hand back the log's own wire records; the canonical model that every source converts into is v0.0.3. Everything else in the table above is unimplemented.

The public API becomes stable at v0.1.0; until then it may change between releases.

Licence

MIT.

Documentation

Overview

Package parsec is the root of the Galaxio load-test result primitives.

The work is split across packages:

  • gatling: the wire records a Gatling simulation.log carries, the version type and the version gate every Gatling codec shares.
  • gatling/text: the codec for the tab-separated simulation.log written by Gatling 3.11.5 through 3.12.0.
  • model (planned): the canonical result types every source is decoded into, and the Capabilities a source declares about what it cannot provide.
  • stats (planned): counts, timings, percentiles, response-time ranges and per-interval series computed from decoded records.

Each arrives in its own milestone. Until v0.1.0 the API may change between releases; see the README for what becomes stable and when.

Directories

Path Synopsis
Package gatling holds what every Gatling codec shares: the wire records a simulation.log carries, the version type, the version gate and the errors a read can end with.
Package gatling holds what every Gatling codec shares: the wire records a simulation.log carries, the version type, the version gate and the errors a read can end with.
text
Package text decodes the tab-separated simulation.log written by Gatling 3.11.5 through 3.12.0.
Package text decodes the tab-separated simulation.log written by Gatling 3.11.5 through 3.12.0.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL