変更履歴
このプロジェクトの主要な変更はすべてこのファイルに記録されます。
フォーマットは Keep a Changelog に基づき、 バージョン管理は Semantic Versioning に準拠しています。
[0.2.0] - 2026-04-06
ライフサイクルの改良
追加
コアフレームワーク
- サーバー終了時に一度だけ実行される
Shutdownスケジュール - ライフサイクルの終了を判定するための
ShutdownFlag
組み込みプラグイン
- シャットダウン時のクリーンアップ処理用に
Plugin::cleanup - Plugin::build のシグネチャを
selfから&selfに変更 - EcsonApp 内でプラグインを
Vec<Box<dyn Plugin>>として格納するように変更 - メインループ終了後かつ Shutdown スケジューリング前に、すべてのプラグインに対して cleanup を呼び出すように変更
0.1.1 - 2026-04-06
追加
コアフレームワーク
EcsonApp に以下のメソッドを追加しました:
startup:Startupを一度だけ実行します。tick_once:UpdateとFixedUpdateを一度だけ実行します。tick_n(n):UpdateとFixedUpdateを n 回実行します。
ドキュメント
修正
ネットワーキング
v0.1.0 では、プロトコルごとに個別のスレッドと Tokio ランタイムを起動していたため、リソースの重複消費が発生していました。今回の更新では共有ランタイムハンドルを使用するよう変更し、システム全体のリソース効率が大幅に向上しました。
組み込みプラグイン
- 各プラグインのスケジュールを整理・改善しました。
- システム登録時の実行順序を保証するため、
.chainを実装しました。
0.1.0 - 2026-04-04
初回リリース
Ecson の最初の公開リリースです。 tokio の非同期 I/O と bevy_ecs のデータ指向設計を組み合わせた、ECS 駆動のステートフル双方向サーバーフレームワークの実験的実装です。
追加
コアフレームワーク
EcsonApp: アプリケーションのエントリーポイント。ECS World とスケジューラーを統合します。- ECS スケジューラーによるロックフリーの並列システム実行。
UpdateおよびFixedUpdateスケジュールのサポート。ecson::prelude::*による公開 API の一括インポート。
ネットワーキング
EcsonWebSocketPlugin: WebSocket (WS) サーバー(開発・本番共用の汎用サーバー)。EcsonWebSocketTlsPlugin: WebSocket over TLS (WSS) サーバー(PEM 証明書が必要)。EcsonWebSocketTlsDevPlugin: 自己署名証明書を自動生成する開発用 WSS サーバー。EcsonWebTransportDevPlugin: WebTransport (HTTP/3 / QUIC) 開発用サーバー(低遅延データグラム通信)。MessageReceived・SendMessage・UserDisconnectedを活用した ECS ベースのネットワーキングイベント API。
組み込みプラグイン
HeartbeatPlugin: Ping/Pong による死活監視と自動切断(ClientTimedOutEvent)。RateLimitPlugin: メッセージ送信レート制限(Drop / Throttle / Disconnect)。PresencePlugin: クライアントのプレゼンス状態管理(Online / Away / Busy)。SnapshotPlugin: ECS コンポーネントの定期スナップショット送信(差分モード対応)。LobbyPlugin: マッチメイキング用ロビー機能(LobbyReadyEvent)。ChatCorePlugin: ニックネーム設定とグローバルブロードキャスト。ChatRoomPlugin: ルームへの参加・退出およびルーム一覧機能(ChatCorePluginと併用)。ChatFullPlugin: チャット関連機能をすべて統合したオールインワンプラグイン。Spatial2DPlugin: 2D 空間の位置管理および AOI(Area of Interest)通知。Spatial3DFlatPlugin: 地上ベースの 3D 空間向け AOI 通知(RPG・MOBA など)。Spatial3DPlugin: フル 3D 空間向け AOI 通知(宇宙・フライトシミュレーターなど)。
サンプル
examples/echo.rs: 接続クライアントへのエコーサーバー。examples/broadcast_chat.rs: 全クライアントへのブロードキャストチャット。examples/room_chat.rs: ルームベースのチャット。
ドキュメント
⚠️ このバージョンは実験的なリリースです。 本番環境での使用は推奨しません。API は予告なく変更される場合があります。