Galaxio·Team
RU
GitHub
Galaxio Team / Осн. 2018
Статус системы — синхронизирован
v3.0 · ECMA / 2026
Open-source · Инженерия производительности

Одна экосистема,много движущихсячастей

Мы делаем плагины, CLI, шаблоны проектов и переносимые плагины для AI-агентов — для Gatling и смежных экосистем нагрузочного тестирования.

Двенадцать репозиториев. Одна экосистема.

Плагины для Gatling, плагины для AI-агентов, CLI, шаблоны проектов и spec-driven методология. Откройте любой репозиторий, чтобы увидеть реальный пример использования и перейти к README.

Плагины Gatling04

Публикуются в Maven Central под org.galaxio
R / 01
gatling-kafka-pluginPlugin
Плагин протокола Kafka — produce, request-reply, Avro.

// О продукте

Плагин протокола Kafka для Gatling. Сценарии produce-only и request-reply с обычной сериализацией, хелперами Avro4s и интеграцией со Schema Registry. Корреляция ответов настраивается на уровне протокола и отслеживается общим консьюмером.

// Ключевое

  • Produce-only через kafka("name").topic(...).send(...)
  • Request-reply с корреляцией matchByValue / matchByMessage
  • Avro4s + Schema Registry или собственный Kafka Serde[T]
  • Gatling 3.13.5 · Scala 2.13.16 · Java 17+
scala · build.sbt + simulation
// build.sbt
libraryDependencies += "org.galaxio" %% "gatling-kafka-plugin" % "<version>" % Test

import org.galaxio.gatling.kafka.Predef._
import io.gatling.core.Predef._

val kafkaConf = kafka
  .properties(Map("bootstrap.servers" -> "localhost:9092"))

val scn = scenario("Kafka Producer")
  .exec(
    kafka("send message")
      .topic("test-topic")
      .send[String, String]("key", """{"msg": "hello"}""")
  )

setUp(scn.inject(atOnceUsers(1))).protocols(kafkaConf)

// О продукте

Выполняйте SQL-запросы, вставки, обновления, батчевые операции, сырой SQL и хранимые процедуры в любой JDBC-совместимой базе — с пулом соединений HikariCP и проверками результата. Драйверы вендоров в поставку не входят: добавьте тот, что нужен вашей базе.

// Ключевое

  • Подготовленные запросы query / queryP, insertInto, rawSql, batch, call
  • Пул HikariCP с выделенным блокирующим executor
  • Проверки: allResults, simpleCheck, Gatling EL внутри SQL
  • Gatling 3.13.x · Scala 2.13 · Java 11+
scala · build.sbt + simulation
// build.sbt — plugin + your JDBC driver
libraryDependencies ++= Seq(
  "org.galaxio" %% "gatling-jdbc-plugin" % "<version>" % Test,
  "org.postgresql" % "postgresql" % "42.7.11" % Test,
)

import org.galaxio.gatling.jdbc.Predef._

val dbConf = DB
  .url("jdbc:postgresql://localhost:5432/test")
  .username("test").password("test")
  .maximumPoolSize(10)

scenario("JDBC Query")
  .exec(
    jdbc("find user")
      .queryP("SELECT * FROM users WHERE id = {id}")
      .params("id" -> "#{userId}")
      .check(simpleCheck(_.nonEmpty))
  )

// О продукте

Плагин протокола AMQP с поддержкой RabbitMQ: паттерны publish, request-reply и consume, пул каналов и publisher confirms. Очереди и обменники можно объявлять прямо из DSL.

// Ключевое

  • Публикация через queueExchange / directExchange / topicExchange
  • Request-reply с matchByMessageId или matchByCorrelationId
  • Полный DSL свойств сообщения, всюду с поддержкой Gatling EL
  • Gatling 3.13.x · Scala 2.13 · Java 17+
scala · build.sbt + simulation
// build.sbt
libraryDependencies += "org.galaxio" %% "gatling-amqp-plugin" % "<version>" % Test

import org.galaxio.gatling.amqp.Predef._

val amqpConf = amqp
  .connectionFactory(
    rabbitmq.host("localhost").port(5672)
      .username("guest").password("guest").vhost("/")
  )
  .usePersistentDeliveryMode
  .matchByMessageId

scenario("AMQP Publish")
  .exec(
    amqp("publish").publish
      .queueExchange("test-queue")
      .textMessage("""{"msg": "hello"}""")
      .contentType("application/json")
  )

// О продукте

Готовые к продакшену хелперы поверх базового DSL Gatling: структурированная конфигурация, фидеры данных на Faker, подписанные JWT, сценарии поверх Redis, переиспользуемые блоки транзакций, проверки NFR и маскирование секретов в логах.

// Ключевое

  • SimulationConfig — общие baseUrl / intensity / длительности с переопределением через -D
  • Фидеры Faker API, HC Vault, CSV и телефонных номеров
  • JWT (HS/RS/ES), транзакции с собственной статистикой задержек
  • Gatling 3.13.x начиная с 1.12.0 · Scala 2.13 · Java 17+
scala · build.sbt + simulation
// build.sbt
libraryDependencies += "org.galaxio" %% "gatling-picatinny" % "VERSION" % Test

import org.galaxio.gatling.config.SimulationConfig._
import org.galaxio.gatling.feeders.faker.Predef._

// shared config from simulation.conf, overridable with -D
val httpProtocol = http.baseUrl(baseUrl)

val users = GeneratedFeeder(
  "email" -> Faker.internet.email(),
  "phone" -> Faker.phone.mobile(Country.RU, PhoneFormatMode.E164),
)

rampUsersPerSec(0).to(intensity).during(rampDuration)

AI-плагины01

Наша инженерная практика, переносимая между агентами

// О продукте

Инженерные практики Galaxio, упакованные в переносимые плагины для агентов. Плагин пишется один раз: одно дерево skills/ на плагин генерирует манифесты Cursor, Claude Code и Codex из общего исходника. В комплекте galaxio-gatling-pro — нагрузочное тестирование на Gatling JVM в стиле Galaxio.

// Ключевое

  • galaxio-gatling-pro — Gatling 3.9.x–3.15.x, Scala/Java/Kotlin
  • sbt, Maven или Gradle · Picatinny · HTTP/JDBC/JMS/Kafka/AMQP
  • Сгенерированные манифесты не правятся руками — npm run check ловит расхождения
  • Apache-2.0 · Node >= 22 · стандарт Agent Skills
shell · install
# Claude Code
$ claude plugin marketplace add galax-io/ai-plugins

# Codex
$ codex plugin marketplace add galax-io/ai-plugins

# then install the plugin by name
$ claude plugin install \
    galaxio-gatling-pro@galaxio-performance-kit

# Cursor: Dashboard -> Plugins -> Add Marketplace
#         -> Import from Repo

Ядро / Платформа03

Скаффолдинг, шаблоны и CLI, который их связывает

// О продукте

CLI на Go для процессов нагрузочного тестирования на Gatling. Разворачивает готовые к компиляции проекты из шаблонов и генерирует скрипты Gatling из Swagger/OpenAPI, записей HAR или коллекций Postman. Реестр по умолчанию уже прописан, поэтому поиск шаблонов работает без настройки.

// Ключевое

  • template init / list — развернуть проект и посмотреть доступные шаблоны
  • generate swagger / har / postman — скрипты из готовой спецификации API
  • doctor — проверка конфигурации и доступа к реестру · update — самообновление
  • macOS, Linux, Windows · go install, shell-установщик или Docker
shell
# install (macOS / Linux)
$ curl -fsSL https://raw.githubusercontent.com/galax-io/\
    galaxio-cli/main/scripts/install.sh | sh

# discover and scaffold
$ galaxio template list
$ galaxio template init gatling/scala-sbt \
    --set Name=orders-api \
    --set NameWord=ordersApi \
    -d ./perf-tests

# generate a simulation from an OpenAPI spec
$ galaxio generate swagger --from ./petstore.yaml --init

// О продукте

Набор шаблонов Gatling для galaxio-cli. Шесть готовых к компиляции шаблонов: Scala, Java и Kotlin на sbt, Maven и Gradle, с опциональными модулями плагинов Kafka, JDBC и AMQP, которые подключаются по требованию.

// Ключевое

  • scala-sbt · scala-gradle · java-maven · java-gradle · kotlin-maven · kotlin-gradle
  • Опциональные слои Kafka / JDBC / AMQP через параметры *PluginEnabled
  • Любой параметр переопределяется через --set или YAML-файл --values
  • Pack 0.15.0 · Gatling 3.13.5 · Picatinny 1.17.1
shell
# scaffold, then enable optional plugin modules
$ galaxio template init gatling/scala-sbt \
    --set Name=my-service \
    --set NameWord=myservice \
    --set KafkaPluginEnabled=true \
    --set JdbcPluginEnabled=true \
    -d ./perf-tests

# compile the rendered project
$ cd perf-tests && sbt -batch Gatling/compile

// О продукте

Реестр по умолчанию, из которого читает galaxio-cli. Хранит версионируемые шаблоны проектов и их метаданные, чтобы CLI мог сопоставить версию набора с релизом на GitHub и развернуть проект из него. Переключать CLI на другой источник нужно, только если требуется приватный.

// Ключевое

  • Источник по умолчанию — github:galax-io/galaxio-template-registry
  • Версия набора разрешается в тег релиза на GitHub
  • Свой реестр подключается через template configure --registry
shell
# the default registry needs no setup, but you can inspect it
$ galaxio template configure --show
$ galaxio doctor

# point at your own registry
$ galaxio template configure \
    --registry github:my-org/my-registry

# or a local checkout, for one command only
$ galaxio template init mypack/mytemplate \
    --registry local:/path/to/registry

Методология / Процесс02

Spec-driven разработка для задач производительности

// О продукте

Методология spec-driven-разработки для нагрузочного тестирования и тестирования производительности, построенная на GitHub spec-kit. Она фиксирует практики нагрузочного тестирования в виде утверждённой конституции, поэтому работа идёт управляемым и прослеживаемым конвейером с гейтами, а не набором разрозненных скриптов.

// Ключевое

  • Четыре фазы и две точки входа — bootstrap, order, spec & plan, build & run
  • NFR в прозе -> уточнение -> SLO в формате EARS -> машиночитаемый nfr.yml
  • Поставляется как бандл spec-kit: preset + extension + workflow
  • Статус: исследование и проектирование — дизайн лежит в docs/
shell · specify
# discover
$ specify preset search perf
$ specify extension search perf

# install
$ specify init --preset perf
$ specify extension add <id>

# run the gated pipeline
$ specify workflow run

// О продукте

Шаблон Copier для старта нового проекта, в котором процесс разработки Galaxio уже настроен: расширения и пресеты spec-kit, гейт связи issue-PR-milestone и независимые от стека AGENTS.md / CLAUDE.md. Стек значения не имеет — процесс одинаков для любого проекта.

// Ключевое

  • Выберите стек (scala-sbt / jvm-gradle / node / python / go / generic) — значения по умолчанию подставятся сами
  • Хук linkage-guard не даёт проставить тег релиза, пока не сходится связь issue-PR-milestone
  • copier update втягивает последующие изменения процесса в проект трёхсторонним merge
  • Ставит 7 расширений spec-kit и пресет
shell · copier
# install Copier once, isolated
$ uv tool install copier    # or: pipx install copier

# scaffold a new project (--trust runs post-gen tasks)
$ copier copy --trust \
    gh:galax-io/spec-kit-galaxio-bootstrap \
    ~/code/my-new-project

# later, pull template/process updates in
$ cd ~/code/my-new-project && copier update --trust

Инструменты / Инфраструктура02

Вспомогательный состав

// О продукте

Добавляет SBT-задачу, которая скачивает схемы Avro и Protobuf из Confluent Schema Registry и генерирует по ним исходники — так сгенерированный код остаётся согласованным с тем, что ожидают ваши продюсеры и консьюмеры.

// Ключевое

  • Скачивание и генерация схем Avro / Protobuf
  • Держит сгенерированный код согласованным с реестром
  • Работает в паре с поддержкой Avro в gatling-kafka-plugin
scala · plugins.sbt
// project/plugins.sbt
addSbtPlugin("org.galaxio" % "sbt-schema-registry-plugin" % "<version>")

// build.sbt — point at your registry
schemaRegistryUrl := "http://localhost:8081"

// download the schemas
$ sbt schemaRegistryDownload

// О продукте

Контейнерные образы для пайплайнов CI/CD Galaxio и локальных окружений разработки — зафиксированные тулчейны, чтобы прогон Gatling вёл себя одинаково на ноутбуке и в CI.

// Ключевое

  • Образы для CI/CD и локальной разработки
  • Зафиксированные версии JDK и сборочных инструментов
  • Воспроизводимость у разных CI-провайдеров
shell
# the galaxio CLI is also published as an image
$ docker pull galaxioteam/galaxio:latest

$ docker run --rm \
    -v "$PWD":/work -w /work \
    galaxioteam/galaxio template list
В архиве

Мы строим вместе с контрибьюторами, мейнтейнерами и пользователями.

Мы рады issues, идеям, улучшениям документации и интеграциям, которые помогают экосистеме расти.

CH-002 · QA Load · Live

Сигнал, который слушают все.

Живое сообщество инженеров по производительности, контрибьюторов и мейнтейнеров Galaxio. Задавайте вопросы, делитесь находками, следите за релизами — на русском, английском и испанском.

10k+Участников
24/7Онлайн
RU·EN·ESЯзыки
t.me/qa_load
§ 03 / Истоки

Название Galaxio восходит к Галаксии Азимова.

Галаксия — это будущее состояние, в котором все планеты, все люди, вся жизнь и даже неживая органическая материя объединены в единый организм.

Нам близка эта идея, потому что она отражает то, чем мы занимаемся: координация, масштаб и системы, работающие как одно целое. Плагины, интеграции и рабочие процессы — те нити, что скрепляют инструментарий нагрузочного тестирования: экосистема прочна ровно настолько, насколько прочны связи между её частями.

Нужно срочно? Возьмём в работу вне очереди.

Критичные фичи и интеграции можно приоритизировать в рамках платной работы. Это самый быстрый путь, когда скорость выпуска важнее ожидания в общей очереди.

Связаться