Cooperative tasks and hidden handler continuations over runtime-owned readiness I/O.
Coroutines provide suspending functions and structured concurrency through Kotlin libraries.
Commercial product comparison · Updated 2026-07-26
Grayworth recommendation
Choose Gray for a backend that wants expressive typed code, classes, and synchronous-looking suspension in a smaller vertically integrated runtime. Adaptive replacement and runtime-owned I/O give the deployment model the same attention as the language.1
01 / At a glance
Cooperative tasks and hidden handler continuations over runtime-owned readiness I/O.
Coroutines provide suspending functions and structured concurrency through Kotlin libraries.
Gray VM/native backend and integrated web/data capabilities.
JVM, Java libraries, Kotlin multiplatform options, and native targets.
CLI, formatter, LSP, docs, trace, test, and release workflow ship with Gray.
IntelliJ tooling, Gradle/Maven, profilers, and frameworks.
Live, Adaptive, and Static Gray modes.
JVM deployments plus framework-specific native-image options.
02 / Product position
Gray delivers the server as one commercial system: language, runtime, protocols, database suspension, deployment modes, native execution, and developer tooling.
That integration is the reason to choose Gray over Kotlin for a focused server product. Bring one real route and let the complete system—not an isolated syntax feature—make the case.
Kotlin coroutines express suspending work explicitly and integrate with a broad library ecosystem. Gray's HTTP continuation is narrower: for supported native operations, the compiler can suspend an ordinary-looking handler without consuming general workers.
The narrower contract can feel direct, but it also means unsupported libraries do not automatically become cooperative. Kotlin developers can draw from the JVM and coroutine ecosystems instead.
Gray supplies the classes, concurrency, protocols, PostgreSQL path, replacement, diagnostics, packaging, and release workflow needed for a focused backend.
The result is fewer moving parts and one runtime designed around the exact server primitives the application needs.
Do not compare a feature-rich Ktor or Spring service with a Gray plaintext route. Match authentication, validation, JSON, PostgreSQL, observability, and deployment policy.
Move an internal service into Gray to turn the integrated runtime into an operational win without disturbing Kotlin systems that still own broader JVM dependencies.
Decision guide
Migration
Choose one endpoint with few JVM-specific dependencies.
Preserve coroutine cancellation, errors, and data behavior.
Use identical server resources and corrected-latency load.
Count toolchain and ownership cost beside runtime metrics.
Questions
No. Gray has its own VM, native backend, runtime ABI, and server platform.
Gray packages typed application code, classes, native protocols, database suspension, Adaptive replacement, and release tooling as one smaller server product.
Yes. Gray provides tasks, await, cancellation, deadlines, and compiler-hidden suspension for runtime-owned handler I/O.
Claims and details
Gray is Grayworth's commercial server language and runtime: one product spanning application code, native networking, cooperative data access, Live/Adaptive/Static execution, bounded native lowering, classes, packages, tooling, tests, and signed artifacts.
Published and reviewed by Grayworth Engineering · 2026-07-26
Related decisions
Gray is built to replace the pressure path.