<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6" -->

---
title: GitHub Copilot Runtime Rust Migration: Hype vs. Reality
description: GitHub&#x27;s Copilot agent runtime was ported from TypeScript/Node.js to over 800,000 lines of production Rust in about 14.5 weeks, mostly written by coding...
canonical: https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GitHub Copilot Runtime Rust Migration: Hype vs. Reality | daily.dev
og:description: GitHub&#x27;s Copilot agent runtime was ported from TypeScript/Node.js to over 800,000 lines of production Rust in about 14.5 weeks, mostly written by coding...
og:url: https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6
og:image: https://api.daily.dev/og/posts/Voci9j3Z6.png
og:image:alt: GitHub Copilot Runtime Rust Migration: Hype vs. Reality
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub Copilot Runtime Rust Migration: Hype vs. Reality

**[Milan Jovanović](https://daily.dev/sources/milanjovanovic)** · 12 min read · 0 upvotes · 0 comments

## Summary

GitHub's Copilot agent runtime was ported from TypeScript/Node.js to over 800,000 lines of production Rust in about 14.5 weeks, mostly written by coding agents, with roughly $120,000 in token spend. Stephen Toub, a Microsoft Distinguished Engineer, drove the port with help from teammates on SDK bindings and interop layers, while reviewer agents on three different models checked line-by-line diffs against the old TypeScript. GitHub's benchmarks show the new runtime running 3x-6x faster out-of-process and 6x-21x faster in an opt-in in-process mode, with memory use dropping sharply. The piece unpacks why Rust was chosen over C#/.NET (a C ABI with no garbage collector for in-process loading), how the strangler-fig-style port avoided a code freeze, and how human review was restructured around agent-generated code rather than eliminated, also touching on DHH's related Rails World keynote remarks about Rust and AI-written code.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://milanjovanovic.tech/blog/github-copilot-rust-migration-hype-vs-reality>

## Questions this post answers

### Why did GitHub rewrite the Copilot runtime from TypeScript to Rust instead of using C#?

GitHub needed a runtime that all six Copilot SDK languages (C#, Python, Go, Java, Rust, TypeScript) could load in-process through a C ABI with minimal overhead and no second language runtime. Rust compiles to a native library with no garbage collector, while a Native AOT .NET library would bring its own GC heap and threads into the host process, which GitHub wanted to avoid.

_Weighing Rust against .NET for a native, embeddable runtime is easier with real benchmarks like these surfaced on daily.dev._

### How much faster is GitHub's Rust Copilot runtime compared to the old TypeScript version?

The Rust runtime ran 3x to 6x faster out-of-process and 6x to 21x faster in an opt-in in-process mode, measured through the C# SDK against a deterministic local chat server excluding model inference and network latency. Memory added by ten concurrent clients dropped from 1,383 MB with TypeScript to 247 MB out-of-process Rust and 126 MB in-process.

_Developers sizing agent-runtime performance gains can track benchmarks like these through daily.dev._

### Did one engineer really write 800,000 lines of Rust for the GitHub Copilot runtime migration?

Not alone. Stephen Toub drove the port over about 14.5 weeks and roughly three weeks of his own time, spending about $120,000 in token costs across 136.3 billion tokens, but teammates built a temporary interop layer, five of six SDK bindings, packaging, and build tooling, while reviewer agents on three different models did the line-by-line TypeScript-to-Rust comparison before human reviewers checked architecture and risk.

_Anyone sizing up claims about AI-driven rewrites can follow the details behind these numbers on daily.dev._

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#github](https://daily.dev/tags/github), [#rust](https://daily.dev/tags/rust), [#.net](https://daily.dev/tags/.net)

[View this post on daily.dev](https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"GitHub Copilot Runtime Rust Migration: Hype vs. Reality","url":"https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6"},"datePublished":"2026-10-02T19:42:11.471Z","dateModified":"2026-10-02T19:48:45.933Z","description":"GitHub's Copilot agent runtime was ported from TypeScript/Node.js to over 800,000 lines of production Rust in about 14.5 weeks, mostly written by coding...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e379df3ad608d78023cc339271af99d7?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e379df3ad608d78023cc339271af99d7?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Milan Jovanović","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Milan Jovanović","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566","url":"https://daily.dev/sources/milanjovanovic"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,github,rust,.net","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Milan Jovanović","item":"https://daily.dev/sources/milanjovanovic"},{"@type":"ListItem","position":3,"name":"GitHub Copilot Runtime Rust Migration: Hype vs. Reality"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/github-copilot-runtime-rust-migration-hype-vs-reality-voci9j3z6#faq","mainEntity":[{"@type":"Question","name":"Why did GitHub rewrite the Copilot runtime from TypeScript to Rust instead of using C#?","acceptedAnswer":{"@type":"Answer","text":"GitHub needed a runtime that all six Copilot SDK languages (C#, Python, Go, Java, Rust, TypeScript) could load in-process through a C ABI with minimal overhead and no second language runtime. Rust compiles to a native library with no garbage collector, while a Native AOT .NET library would bring its own GC heap and threads into the host process, which GitHub wanted to avoid. Weighing Rust against .NET for a native, embeddable runtime is easier with real benchmarks like these surfaced on daily.dev."}},{"@type":"Question","name":"How much faster is GitHub's Rust Copilot runtime compared to the old TypeScript version?","acceptedAnswer":{"@type":"Answer","text":"The Rust runtime ran 3x to 6x faster out-of-process and 6x to 21x faster in an opt-in in-process mode, measured through the C# SDK against a deterministic local chat server excluding model inference and network latency. Memory added by ten concurrent clients dropped from 1,383 MB with TypeScript to 247 MB out-of-process Rust and 126 MB in-process. Developers sizing agent-runtime performance gains can track benchmarks like these through daily.dev."}},{"@type":"Question","name":"Did one engineer really write 800,000 lines of Rust for the GitHub Copilot runtime migration?","acceptedAnswer":{"@type":"Answer","text":"Not alone. Stephen Toub drove the port over about 14.5 weeks and roughly three weeks of his own time, spending about $120,000 in token costs across 136.3 billion tokens, but teammates built a temporary interop layer, five of six SDK bindings, packaging, and build tooling, while reviewer agents on three different models did the line-by-line TypeScript-to-Rust comparison before human reviewers checked architecture and risk. Anyone sizing up claims about AI-driven rewrites can follow the details behind these numbers on daily.dev."}}]}
```

