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.
- ⚡ 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).
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.
- Getting Started — download, install, first request.
- User Guide — every feature, task by task.
- Scripting — the
soapAPI for pre/post scripts. - Architecture — how it's built.
- Contributing — build, run, conventions.
- Changelog — what's new in each release.
- 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.
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 .rpmInstallers are written to app/build/compose/binaries/main/<format>/.
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.
- 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.
- Linux —
sudo apt install ./SOAPEasy_*.deborsudo dnf install ./soapeasy-*.rpm.
-
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
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.
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).
Marcos Herrera — The Mx Code Solutions, S.A. de C.V.
Copyright 2026 The Mx Code Solutions, S.A. de C.V.
