Study how a production JIT compiler and garbage collector work by reading the actual source code
Contribute a performance fix or bug patch to the .NET Core runtime
Build a customized version of the .NET runtime for a specialized platform or embedded device
Learn how fundamental C# types like String, Array, and Object are implemented at the lowest level
Building requires the .NET SDK plus native C++ toolchains, each platform has separate build scripts.
CoreCLR is the runtime engine that makes .NET Core applications work. When you write a program in C# or another .NET language, it gets compiled into an intermediate form called IL (Intermediate Language). CoreCLR takes that IL and actually runs it: it compiles it further into machine code at runtime (called JIT compilation), manages memory automatically so you do not have to manually free it (called garbage collection), and provides the basic building blocks that all .NET programs depend on, such as the String and Object types. This repository contains the source code for that runtime. Most people using .NET Core do not need this at all: you just download the .NET SDK and use it. This repo is for people who want to understand how the runtime works internally, contribute to it, or build a customized version of it. The runtime is split across two main repositories. This one (CoreCLR) handles the low-level engine: memory management, JIT compilation, type loading, and interoperability with native code. The standard library (things like collections, file input/output, XML parsing) lives in a separate repository called CoreFX. A complete application needs both, plus a small host program that loads and starts everything. The readme covers how to clone and build the repository on Windows, Linux, and macOS, and explains how to run tests and use a locally built runtime with a test application. It also links to documentation on the runtime's internal architecture for those who want to understand the design.
← dotnet on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.