What's new on Codewars: Language Runtime Updates

Saheed Badru
5
min read
What's new on Codewars: nine language runtime updates

We've been shipping runtime updates across the platform over the past few weeks. Today we're making it official.

Nine languages are now running on current stable versions:

Language Previous version Now running
JavaScriptNode 18Node 22 LTS
TypeScript4.95.7
Rust~1.67~1.86
Go1.201.24
Kotlin1.92.1
Swift5.96
Java1721 LTS
PHP8.08.4
C#1213 on .NET 9

Some of these jumps are significant. Here's what actually changed.

JavaScript — Node 18 → Node 22 LTS

Node 22 brings native require() support for ES modules, improved fetch stability, and a raft of V8 engine improvements. For kata authors, this means cleaner async test scaffolding and better compatibility with modern JS idioms. Node.js 22 release notes →

Note: TypeScript's Node runtime is also being aligned to Node 22, with lib and --target bumps in the pipeline. Details to follow from engineering.

TypeScript — 4.9 → 5.7

Five point releases of improvements. Highlights include const type parameters, using declarations (explicit resource management), inferred type predicates, and --noUncheckedSideEffectImports. Worth reading the full changelog if you write TS kata — there's a lot here. What's New in TypeScript 5.0–5.7 →

Rust — ~1.67 → ~1.86

This one took a while. Multiple previous attempts to update the Rust runtime were blocked by technical issues that took a long time to untangle. It's done now. Nearly 20 minor versions of improvements, including let-else stabilisation, impl Trait in function pointers, and significant progress on async Rust ergonomics. Rust release notes (1.67–1.86) →

Go — 1.20 → 1.24

Go 1.24 includes generic type aliases (finally), improved map performance, and the tool directive in go.mod. Anyone who's been waiting on generic type aliases for a kata idea — now's the time. Go release history →

Kotlin — 1.9 → 2.1

Kotlin 2.x is the K2 compiler era. Performance improvements across the board, plus guard conditions in when expressions, multi-dollar interpolation, and non-local break and continue. What's New in Kotlin 2.0–2.1 →

Swift — 5.9 → 6

Swift 6 makes data-race safety a compile-time guarantee through strict concurrency checking. If you write concurrent Swift, this is a meaningful shift. Announcing Swift 6 →

Java — 17 → 21 LTS

Java 21 is the current LTS release and it's a meaningful jump from 17. Pattern matching for switch, record patterns, virtual threads (Project Loom), and sequenced collections are all here. If you haven't written Java kata in a while, it's worth exploring what's possible now. JDK significant changes (18–21) →

PHP — 8.0 → 8.4

PHP 8.4 adds property hooks, asymmetric visibility, and improvements to the array_* function family. PHP 8 changelog →

C# — 12 → 13 on .NET 9

C# 13 brings params collections, ref struct interfaces, and Lock object support. What's New in C# 13 →

What this means for existing kata

New kata and translations can use updated runtimes and language versions. Katas already on the platform will continue to run on their currently active versions, while community contributors gradually update katas to the latest language versions.

If you notice a kata behaving unexpectedly after an update, flag it through the usual process, and the community will take a look.

Now — build something with them.

With nine runtimes updated, we're running a community authoring challenge to put them to use: Kata Forge: The Language Sprint. Three weeks (starting June 8, 2026), open to everyone, $50 gift card per language winner.

Full details and how to enter will be in Discord #announcements.

Share this post