OSS探訪

C#・Visual Basic compilerとsyntax/semantic modelを公開し、analyzer・code fix・code generation toolを構築できる.NET Compiler Platform

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
20,702
主要言語
C#
ライセンス
MIT
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

RoslynはC#とVisual Basic compilerのopen-source implementationであり、compiler内部で使うsyntax tree・semantic model等をAPIとして公開する.NET Compiler Platformです。compilerそのものに加え、analyzer、code fix、refactoring、source generation等のdeveloper toolingを同じ言語model上で構築できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

C#・Visual Basic compilerのsyntax treeをAPIから扱う

Syntax APIはcompilerと同じparserが生成するfull-fidelityかつimmutableなsyntax treeを公開し、node・token・triviaを解析できます。

出典:[1][2]

compilerと同じlanguage modelでcode analysis toolを作る

Roslyn APIを使うことでsource textだけのheuristicではなく、compilerが理解する構文・意味情報を基にanalyzerやdeveloper toolを実装できます。

出典:[1][2]

NuGet packageからcompiler APIをapplicationへ組み込む

package consumerはMicrosoft.CodeAnalysis.CSharp等を参照し、CSharpSyntaxTree.ParseText等からcompiler serviceを利用できます。2026年10月4日時点のstable C# packageは5.9.0です。

出典:[3][2]

向いている用途

C# code analyzer・generator・refactoring toolを作りたい場合に向く

syntax/semantic understandingが必要なlint、migration支援、code generation、IDE extension等でcompilerと同じmodelを使いたいtool開発に適します。

出典:[1][2]

導入前の確認

GitHub Releasesのlatestを現行version判定に使わない

GitHub Releasesのlatestはv4.0.1(2021年)のままですが、NuGetでは5.x系stable packageが継続公開されています。package versionはNuGetと対象.NET SDKを基準に判断します。

出典:[4][3]

compiler API versionをanalyzer hostと合わせる

Visual Studio、dotnet SDK、build server等のhost側Roslyn versionとanalyzerが参照するpackage versionに差があるとAPI compatibilityやload問題が起こり得ます。deployment先のhost versionを基準にpackageを選定します。

出典:[1][3]

syntax treeはimmutableなので変換は新しいtreeを生成する

Roslyn syntax treeはimmutableです。source transformationでは既存nodeを書き換えるのではなくreplacement node/treeを構築する設計を前提にします。

出典:[2]

参考にした公式資料

  1. [1]Roslyn README(2026-10-04)
  2. [2]Roslyn C# Syntax Analysis walkthrough(2026-10-04)
  3. [3]Microsoft.CodeAnalysis.CSharp 5.9.0 on NuGet(2026-10-04)
  4. [4]Roslyn GitHub latest release v4.0.1(2026-10-04)
  5. [5]Roslyn MIT license(2026-10-04)
編集部からの補足

GitHub Releasesのlatest表示はv4.0.1(2021年)のままで現行versionの指標として使えません。package利用ではNuGet/SDK側のreleaseを正本にし、2026年10月4日時点のstable Microsoft.CodeAnalysis.CSharp 5.9.0など、対象toolchainとversionを揃えてください。

3ステップで試す

  1. 1

    code analysis用console projectを作成する

    Roslyn APIを試すための最小.NET console projectを作成します。

    dotnet new console -n RoslynDemo -f net10.0
  2. 2

    Microsoft.CodeAnalysis.CSharp 5.9.0を追加する

    2026年10月4日時点のstable packageをversion固定で追加します。GitHub Releasesのlatest v4.0.1は現行package versionではありません。

    dotnet add RoslynDemo/RoslynDemo.csproj package Microsoft.CodeAnalysis.CSharp --version 5.9.0
  3. 3

    C# sourceをparseしてroot kindを表示する

    compilerと同じSyntax APIでsource textをparseし、syntax treeが生成できることを確認します。

    printf 'using Microsoft.CodeAnalysis.CSharp;\nvar tree = CSharpSyntaxTree.ParseText("class Demo { int X; }");\nConsole.WriteLine(tree.GetRoot().Kind());\n' > RoslynDemo/Program.cs && dotnet run --project RoslynDemo/RoslynDemo.csproj
公式READMEで確認

成長

成長の推移 · 直近30日

20,702 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
282
Open PR
742

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • roslyn
  • visual-basic
  • visual-studio
  • csharp
  • hacktoberfest
Stars
20,702
Forks
4,334
Watchers
985
Open Issues
5,958
Contributors
265
所有者種別
Organization
主要言語
C#
ライセンス
MIT
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?