Skip to content

Repository files navigation

SOAPEasy logo

SOAPEasy

A fast, lightweight desktop SOAP client — a modern alternative to SoapUI.

macOS · Windows · Linux  •  Apache-2.0  •  themxcode.com/soapeasy

SOAPEasy is a native desktop SOAP / WSDL web-service client built to be quicker and lighter than SoapUI. Load a WSDL, generate a sample request, validate it against the XSD, and send — then run whole test suites and script the boring parts away. No bundled browser, no Electron: one native binary that opens in a blink.

If you test SOAP web services and SoapUI feels heavy, this is for you.

SOAPEasy editing a SOAP request with syntax-highlighted XML next to a formatted response

Why SOAPEasy

  • Fast & native — a single binary, instant cold start. No JVM ceremony to babysit, no Chromium bundled in.
  • ✍️ A real code editor — tokenized XML/JSON/JS highlighting, code folding while editing, XSD validation and autocomplete. Not a plain text box.
  • 📊 Test suites with live charts — iterations, thread ramp-up, assertions, throughput/latency graphs, and PDF reports.
  • 🔒 Open & auditable — Apache-2.0, pinned dependencies, secret-scanned releases, checksum-verified auto-updates.

Runs on macOS (.dmg), Windows (.msi), and Linux (.deb / .rpm). Built with Kotlin + Compose Multiplatform (Desktop/JVM).

Download

Grab the installer for your OS from the Releases page — or see the website. After the first install, SOAPEasy keeps itself up to date (checksum-verified). See First launch on an unsigned build if your OS warns about an unsigned app.

Documentation

Features

  • WSDL loading with XSD import resolution (handles the query-string schema pattern used by Oracle Service Bus and other gateways, and broken TLS chains via AIA-chasing).
  • Real code editor: tokenized syntax highlighting for XML/JSON/JS (built on the vendored RSyntaxTextArea lexers), code folding while editing, formatting, XSD validation, and autocomplete ({{vars}}, soap.*, </ close-tag).
  • JSON-aware responses — detected, pretty-printed, highlighted and foldable.
  • Environments & variables ({{name}}, Postman-style) — global + per-environment, secret values in an encrypted vault.
  • Test suites — per-API or named multi-API suites: iterations, thread ramp-up, delay, endpoint override, assertions, live charts, on-demand stop, versioned saved runs, and PDF reports (vector charts + highlighted bodies + comments).
  • Pre/post scripts in JavaScript (sandboxed): generate dynamic values, extract from the response via XPath, chain requests, programmatic asserts.
  • Multiple tabs (one per operation), per-request endpoints, saved requests/examples, call history.
  • Import collections (own format + SoapUI) and export to own format, Postman v2.1, or SoapUI.
  • Persistent logs (per-day files, 7-day retention) + in-app HTTP/App log panel with wire-level detail.
  • VS Code-style sidebar, dark mode, i18n (English/Spanish), dynamic zoom, native macOS menu bar.

Building from source

Requires JDK 21. jpackage builds the installer for the OS you run it on (no cross-compilation).

./gradlew :app:run                              # run the app
./gradlew :app:packageDmg -PappVersion=2.0.0    # macOS  .dmg
./gradlew :app:packageMsi -PappVersion=2.0.0    # Windows .msi
./gradlew :app:packageDeb -PappVersion=2.0.0    # Linux  .deb
./gradlew :app:packageRpm -PappVersion=2.0.0    # Linux  .rpm

Installers are written to app/build/compose/binaries/main/<format>/.

Releases & auto-update

Pushing a vX.Y.Z tag runs .github/workflows/release.yml, which builds each installer on its own runner (macOS/Windows/Linux), generates a SHA256SUMS file, and publishes them together on the Releases page.

The app checks for updates on launch (silently) and via Help → Check for updates. When a newer version exists, a banner offers Update: SOAPEasy downloads the installer for your OS, verifies its SHA-256 against the release's SHA256SUMS, and only then launches it — a mismatched download is rejected. If anything fails it falls back to opening the release page.

First launch on an unsigned build

  • macOS — right-click → Open the first time (Gatekeeper), or xattr -dr com.apple.quarantine /Applications/SOAPEasy.app.
  • Windows — SmartScreen may warn: More info → Run anyway.
  • Linuxsudo apt install ./SOAPEasy_*.deb or sudo dnf install ./soapeasy-*.rpm.

Supply chain & secrets

  • Dependencies are pinned to exact versions with committed lockfiles; GitHub Actions are pinned to commit SHAs. See gradle/libs.versions.toml.

  • Secret scanning with gitleaks: the release workflow runs a full-history scan and blocks the build if any secret is found. Enable the local pre-commit guard too:

    brew install gitleaks
    git config core.hooksPath .githooks

Contributing

Contributions are welcome — see CONTRIBUTING.md for how to build, run, and the project conventions. There's a mock SOAP server (./gradlew :core:demoserver) so you can try the app without a real service.

License

SOAPEasy is licensed under the Apache License 2.0 — see LICENSE.

It includes third-party code under their own licenses (see NOTICE): the RSyntaxTextArea lexers (BSD-3-Clause, vendored — see editor/VENDORED.md) and Font Awesome Free (SIL OFL 1.1).

Author

Marcos HerreraThe Mx Code Solutions, S.A. de C.V.

Copyright 2026 The Mx Code Solutions, S.A. de C.V.

About

SOAPEasy — fast lightweight SOAP client (WSDL, XSD validation, environments, test suites, pre/post scripting). Kotlin/Compose Desktop.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages