InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now. Learn more →
Top 23 C# Compiler Projects
-
Roslyn
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
Project mention: OpenVSX, which VSCode forks rely on for extensions, down for 24 hours | news.ycombinator.com | 2025-04-24 -
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
-
-
Project mention: Rust panics under the hood, and implementing them in .NET | news.ycombinator.com | 2024-09-23
Before Rich made Clojure for the JVM, he wrote dotLisp[1] for the CLR. Not long after Clojure was JVM hosted, it was also CLR hosted[2]. One of my first experiences with ML was F#[3], a ML variant that targets the CLR. These all predate the MIT licensed .net, but prior to that there was mono, which was also MIT licensed.
1: https://dotlisp.sourceforge.net/dotlisp.htm
2: https://github.com/clojure/clojure-clr
3: https://fsharp.org/
-
> https://github.com/m4rs-mt/ILGPU/releases/tag/v1.5.1
> Sept 2023.
you guys just don't get it - there's a reason why CUDA is a dialect of C/C++ and not C# and it's not because the engineers at NVIDIA have just never heard of C#.
-
Project mention: IKVM – A Java Virtual Machine and Bytecode-to-IL Converter for .NET | news.ycombinator.com | 2025-02-06
-
FastExpressionCompiler
Fast Compiler for C# Expression Trees and the lightweight LightExpression alternative. Diagnostic and code generation tools for the expressions.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
You might be able to repurpose CSharp.lua[1] to compile F#
[1] https://github.com/yanghuan/CSharp.lua
-
-
-
Roslyn-linq-rewrite
Compiles C# code by first rewriting the syntax trees of LINQ expressions using plain procedural code, minimizing allocations and dynamic dispatch.
-
-
-
-
-
Metalama
A meta-programming framework for code generation, aspect-oriented programming, and architecture verification of large C# codebases.
-
Amplifier.NET
Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.
-
Project mention: Rust panics under the hood, and implementing them in .NET | news.ycombinator.com | 2024-09-23
Unfortunately there is no short answer to this. But the main gist is that improving this to take advantage of all the underlying type system and compiler features would require a new API for LINQ, improvements for generic signature inference in C# (and possibly Rust-like associated types support), and introducing a similar new API to replace regular delegates, used by lambdas, anonymous functions, etc. with "value delegates" dispatched by generic argument to methods accepting them, with possibly a lifetime restriction of 'allows ref struct' which is a new feature that clarifies that a T may be a ref struct and is not allowed to be boxed, as it can contain stack references or references to a scope that would be violated by such operation.
There have been many projects to improve this like https://github.com/dubiousconst282/DistIL and community libraries that reimplement LINQ with structs and full monomorphization, but the nature of most projects written in C# means their developers usually are not interested or do not need the zero-cost-like abstractions, which limits the adoption, and for C# itself it would need to evolve, and willingly accept a complete copy of existing APIs in LINQ with new semantics, which is considered, and I agree, a bad tradeoff where the simpler cases can be eventually handled through compiler improvements, especially now that escape analysis is back on the menu.
Which is why, in order to "properly" provide Rust-like cost model of abstractions as the first-class citizen, only a new language that targets .NET would be able to do so. Alternatively, F# too has more leeway in what it compiles its inferred types to, but its a small team and as a language F# has different priorities as far as I know.
-
-
-
Juka
🥣 Juka Programming Language - Fast Portable Programming Language. Run code anywhere without complicated installations and admin rights. Simple, yet powerful new programming language [Easy to code and run on any system] IOT devices supported!
-
vsSolutionBuildEvent
🎛 Event-Catcher with variety of advanced Actions to service projects, libraries, build processes, runtime environment of the Visual Studio, MSBuild Tools, and …
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C# Compiler discussion
C# Compiler related posts
-
IKVM – A Java Virtual Machine and Bytecode-to-IL Converter for .NET
-
A Java JIT Compiler and Runtime in Common Lisp
-
How to update library and get swamped with this task.
-
The Humble for Loop in Rust
-
I have battled a dragon, and came on top
-
Show HN: A novel markup language for lists – "Describe"
-
CRLF is obsolete and should be abolished
-
A note from our sponsor - InfluxDB
www.influxdata.com | 14 May 2025
Index
What are some of the best open-source Compiler projects in C#? This list will help you:
# | Project | Stars |
---|---|---|
1 | Roslyn | 19,506 |
2 | bebop | 2,009 |
3 | PowerUp | 1,642 |
4 | ClojureCLR | 1,586 |
5 | ILGPU | 1,542 |
6 | ikvm | 1,376 |
7 | FastExpressionCompiler | 1,268 |
8 | CSharp.lua | 1,252 |
9 | Netjs | 969 |
10 | Jurassic | 911 |
11 | Roslyn-linq-rewrite | 715 |
12 | Cesium | 409 |
13 | Mond | 377 |
14 | h5 | 244 |
15 | Hybridizer | 242 |
16 | Metalama | 200 |
17 | Amplifier.NET | 178 |
18 | DistIL | 128 |
19 | Compiler | 119 |
20 | Ncodi | 117 |
21 | Juka | 83 |
22 | vsSolutionBuildEvent | 82 |
23 | CSLisp | 59 |