rikimaru0345/Ceras
rikimaru0345/Ceras has 501 GitHub stars and 57 forks. Star changes are not measured yet. Last checked 2026-11-14 08:31 UTC. Last push 2026-10-02.
できること
- Very fast, small binary output (see Performance)
- Hand-written formatters for all common .NET types
- Comes with formatters for all common Unity types
- Generates new formatters at runtime for any new/user type
計測したスター増加
- 24時間
- 履歴を収集中
- 7日間
- 履歴を収集中
- 15日間
- 履歴を収集中
- 1か月
- 履歴を収集中
期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。
概要
Universal binary serializer for a wide variety of scenarios https://discord.gg/FGaCX4c
データREADME.md
オリジナルCeras
Ceras is a binary serializer. It converts any object into a byte[] and back.
It goes above and beyond in terms of features, speed, and comfort.
Supports reference loops, large/complicated inheritance chains, splitting objects into parts, ...
Quick start
class Person { public string Name; public int Age; }
var p = new Person { Name = "riki", Age = 5 };
var ceras = new CerasSerializer();
var bytes = ceras.Serialize(p);
- >> Many more examples in the code tutorial
- >> Detailed guides for specific scenarios on my blog
- >> Read 'Optimization & Usage Pitfalls'
- >> Changelog v3.0 (rikidev.com/new-features-in-ceras-3-0-2)
- >> New features in v4.0 (https://github.com/rikimaru0345/Ceras/releases/tag/4.0)
Features
- Very fast, small binary output (see Performance)
- Supports pretty much any type:
- Hand-written formatters for all common .NET types
- Comes with formatters for all common Unity types
- Generates new formatters at runtime for any new/user type
- Very easy to extend and customize
- Full support for reference persistence (including circular references!)
- Full support for polymorphism / inheritance / interfaces
- Can serialize objects into parts as "ExtenalObjects" (useful in many many scenarios)
- Automatic version-tolerance, no need to place any attributes on your classes!
- full feature list (and planned features)
Performance benchmarks
Ceras generally ranks at the top end of the performance spectrum, together with NetSerializer and MessagePack-CSharp. To get an idea of how Ceras performs here are the preliminary benchmark results. The resulting binary size is about the same as MessagePack-CSharp.

The shown results are obtained from this code and I encourage you to not only try it yourself, but to also provide feedback about scenarios you had good and bad results with.
Don't forget to tune the settings in SerializerConfig for your specific situation.
Using Ceras to read/write network packets might require different settings than, lets say, saving a settings-object to a file, or persisting items/spells/monsters in a game, or ...
The project is still heavily work-in-progress, meaning that over time more optimizations will get implemented (your feedback is important here!).
What can this be used for?
Example usages
The primary goal is to make an universal serializer that can be used in every situation. Personally my primary intentions were easy object persistance and network communication. I've added many features over time and whenever someone can think of a good scenario that should be supported as well I'll make it happen.
Examples:
Settings: Saving objects to disk quickly without much trouble: settings, savegames, whatever it is. With pretty much zero config. See steps 1 and 2 in the Usage Guide
Splitting: So your
Personhas references to otherPersonobjects, but each one should be serialized individually!? (without the references quickly dragging in essentially your whole program). Maybe you want to be able to put eachPersoninto its own file, or send them over the network one-by-one as needed? No problem! UsingIExternalRootObjectit's not an issue! See External Objects Guide (Game DB example)).Network: Because of its simple API and vast set of features Ceras is uniquely suited to implement a full 'network-protocol' for you. I wrote a short guide that shows off how a basic TCP implementation could look like: Just
Send(myObject);it, thenvar obj = await Receive();on the other side, that's it! It literally can't get any easier than that. At the moment the guide only has 2 parts, but when I have some (and if there are requests for it) I'd like to continue the series, eventually building that sample into a full-fledged, robust, and battle-tested networking system.More: The above are just examples, Ceras is made so it can be used in pretty much every situation...
When should I not use this?
If you need human readable output for some reason. For example some file that you want to be able to edit in a text-editor. For those usages JSON or XML are likely better suited.
You plan to use this on a platform that does not support code generation. Serializers for user-types are created at runtime through code-generation. And if that isn't allowed (for example on iOS) Ceras won't be able to generate arbitrary object-formatters. Built-in types will still work though. There are ways to fix this though... (pre-generating the formatters) Ceras now has a dedicated
AotModein the config and a code-generator (quick guide for it here) for IL2CPP/Unity/AoT.
Support
- Open an issue
- Join my Discord (probably the best for direct one-on-one help)
- Make sure you've read FAQ and Optimization & Pitfalls
>> FAQ
>> Development Blog
関連プロジェクトを探す
Asabeneh/30-Days-Of-Python
30 Days of Python プログラミングチャレンジは、Python プログラミング言語を 30 日で学ぶためのステップバイステップのガイドです。このチャレンジは 100 日以上かかることもあります。自分のペースで進めてください。こちらの動画も役立つかもしれません: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,717 スターgrafana/grafana
オープンで組み合わせ可能なオブザーバビリティおよびデータ可視化プラットフォームです。Prometheus、Loki、Elasticsearch、InfluxDB、Postgres など、複数のソースからメトリクス、ログ、トレースを可視化できます。
77,896 スターredis/redis
リアルタイムのデータ駆動型アプリケーションを構築する開発者にとって、Redis は最も選ばれ、最速で、機能が最も豊富なキャッシュ、データ構造サーバー、ドキュメントおよびベクトルクエリエンジンです。
77,491 スターapache/superset
Apache Superset は、データ可視化とデータ探索のためのプラットフォームです。
75,522 スター