OSS探訪GitHubでログイン

Kotlinの型から複数形式の読み書きコードを生成する公式ライブラリ

スコアの見方

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

Stars
5,946
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/01
ページ内ナビ

概要

kotlinx.serializationは、Kotlinの型をJSONなどのデータ形式へ変換し、元の型へ戻すコードを生成する公式ライブラリです。コンパイラプラグインが@Serializableを付けたクラス向けの処理を生成し、実行時ライブラリが形式ごとの読み書きを担います。JVM、JS、Nativeを含むマルチプラットフォームの共通コードで利用できます。

特徴と向いている用途

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

主な特徴

型定義を基準にJSON、Protocol Buffers、CBORなどを扱う

@Serializableを付けたKotlinクラスと標準コレクションを対象に、リフレクションへ依存しない変換コードを生成します。公式の形式ライブラリはJSON、Protocol Buffers、CBOR、HOCON、Propertiesを扱い、Json.encodeToStringとJson.decodeFromStringのようなAPIで型付きデータを往復できます。

出典:[1]

向いている用途

共有モデルを複数の実行環境やデータ形式で再利用したい場合に向く

Kotlin Multiplatformの共通モデルをJVM、JS、Nativeで共有するアプリや、API通信、設定、保存データを型安全に読み書きしたいプロジェクトに向きます。JSONを入口にしつつ、同じ型定義をProtocol BuffersやCBORへ展開したい場合にも適しています。

出典:[1]

導入前の確認

コンパイラプラグインと実行時ライブラリの版を分けて管理する

serializationプラグインはKotlinコンパイラと同じ版を使いますが、実行時ライブラリは独立した版番号です。安定版1.11.0のREADMEはKotlin 2.3.20との組み合わせを示しています。Androidの縮小設定は標準的なクラス向け規則を同梱しますが、名前付きcompanion objectを持つ直列化対象には追加規則が必要です。形式ごとの互換性や既定値も更新時にCHANGELOGで確認してください。ライセンスはApache-2.0です。

出典:[1][2][3][4]

参考にした公式資料

  1. [1]Kotlin/kotlinx.serialization — README 1.11.0(2026-10-04)
  2. [2]Kotlin/kotlinx.serialization — CHANGELOG 1.11.0(2026-10-04)
  3. [3]kotlinx.serialization 1.11.0 release(2026-10-04)
  4. [4]Kotlin/kotlinx.serialization — LICENSE(2026-10-04)
編集部からの補足

データ形式ごとに手作業の変換コードを増やさず、Kotlinの型を中心に読み書きを統一できる点に注目しました。コンパイラプラグインと実行時ライブラリは版番号の体系が異なるため、更新計画では別々に確認してください。

3ステップで試す

  1. 1

    コンパイラプラグインを有効にする

    既存のKotlin/JVM Gradleプロジェクトで、Kotlinとserializationプラグインの版を2.3.20にそろえます。

    plugins { kotlin("jvm") version "2.3.20" kotlin("plugin.serialization") version "2.3.20" }
  2. 2

    JSONライブラリを追加する

    Gradleのdependenciesブロックへ追加し、mavenCentral()を利用します。

    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0")
  3. 3

    型をJSONへ変換して戻す

    kotlinx.serialization.*とkotlinx.serialization.json.*を読み込み、Projectをファイル直下に宣言し、変換処理をmain関数内で実行します。

    @Serializable data class Project(val name: String, val language: String) fun main() { val text = Json.encodeToString(Project("demo", "Kotlin")) println(Json.decodeFromString<Project>(text)) }
公式READMEで確認

成長

成長の推移 · 直近30日

5,946 Stars

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

開発アクティビティ

直近90日・週次

Commit(直近30日)
2
Open PR
38

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

Built with

カテゴリとタグ

GitHubデータ

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

GitHub Topics

  • kotlin
  • serialization
  • json
  • cbor
  • protobuf
Stars
5,946
Forks
685
Watchers
100
Open Issues
268
Contributors
198
所有者種別
Organization
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/01

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

情報の誤りを報告

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

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