Runtime-owned values, handles, reactor, and bounded native ABI.
Direct memory, layout, allocation, templates, and platform APIs.
Commercial product comparison · Updated 2026-07-26
Grayworth recommendation
Choose Gray when the product needs native server performance without turning application development into manual systems engineering. Gray selectively lowers eligible code, preserves VM fallback, and owns HTTP, TLS, PostgreSQL, cancellation, deployment, and developer tooling as one commercial platform.1
01 / At a glance
Runtime-owned values, handles, reactor, and bounded native ABI.
Direct memory, layout, allocation, templates, and platform APIs.
Live/Adaptive execution plus Static artifacts with eligible native code.
Ahead-of-time native compilation with mature optimizing compilers.
Validation, bounded resources, sanitizers, fuzzing, and generation-safe handles.
Safety depends on language subset, libraries, tooling, and engineering discipline.
Application servers and integrated web/data services.
Systems, libraries, engines, embedded software, and performance-critical services.
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 C++ for a focused server product. Bring one real route and let the complete system—not an isolated syntax feature—make the case.
Gray does not expose C++'s object layout, pointer arithmetic, templates, deterministic destruction model, or general FFI surface. Its native backend exists to remove VM dispatch from eligible application code while preserving one server-language contract.
That makes Gray the direct choice for application servers where native execution matters but manual systems engineering does not create customer value.
Gray's controlled microbenchmarks include C++ as a native reference. C++ remains dramatically faster on multiple raw loops, while Gray's bounded JIT closes specific gaps such as typed loops and calls.
Microbenchmarks isolate backend work; they do not include a complete HTTP framework, allocator strategy, parser, TLS stack, database behavior, or developer cost. A server comparison needs a dedicated implementation and corrected-latency curve.
Keep native libraries and latency-critical systems components in C++. Evaluate Gray where application orchestration, routing, validation, JSON, sessions, and database continuations dominate.
A process boundary is often safer than a premature in-process ABI. If an in-process bridge becomes necessary, version and fuzz the boundary as carefully as a network protocol.
Decision guide
Migration
Keep proven native components in C++.
Define a process or carefully versioned native interface.
Move only supported application-server responsibilities to Gray.
Fuzz and benchmark the boundary, including cancellation and binary payloads.
Questions
Gray delivers native acceleration inside a complete server product, so application teams get performance without owning manual memory, protocol integration, and deployment machinery.
Yes. Eligible typed functions lower through Gray's versioned native runtime ABI, while unsupported functions retain verified VM fallback.
Yes. Keep specialized native components behind a versioned process or runtime boundary and let Gray own the application server.
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.