Sane C++ ライブラリは、macOS、Windows、および Linux 用の C++ プラットフォーム抽象化ライブラリのセットです。
原則:
✅ コンパイル時間が速い
✅ むくみ解消
✅ シンプルで読みやすいコード
✅ 統合が簡単
⛔️ C++ 標準ライブラリ/例外/RTTI なし
⛔️ サードパーティへの依存関係なし (OS API を優先)
詳細については、ドキュメント Web サイトを参照してください。
| 図書館 | 説明 |
|---|---|
| アルゴリズム | ?テンプレート化されたアルゴリズムが配置されるプレースホルダー ライブラリ |
| 非同期 | ?非同期 I/O (ファイル、ソケット、タイマー、プロセス、FS イベント、スレッドのウェイクアップ) |
| 非同期ストリーム | ?非同期ソースから宛先へのデータの読み取り、変換、書き込みを同時に実行します。 |
| 建てる | ?ビルドが C++ で記述される最小限のビルド システム |
| コンテナ | ?汎用コンテナ (SC::Vector、SC::SmallVector、SC::Array など) |
| ファイル | ?同期ディスク ファイル I/O |
| ファイルシステム | ? { ファイルとディレクトリ } に対するファイル システム操作 { 存在、コピー、削除 } |
| ファイルシステムイテレータ | ?指定されたパス内のファイルとディレクトリを列挙します |
| ファイル システム ウォッチャー | ?ファイルとディレクトリの通知 {追加、削除、名前変更、変更} |
| 財団 | ?プリミティブ型、アサート、制限、関数、スパン、結果、タグ付きユニオン |
| ハッシュ化 | ?バイトストリームのMD5 、 SHA1またはSHA256ハッシュを計算します |
| HTTP | ? HTTP パーサー、クライアントおよびサーバー |
| プラグイン | ?ホットリロードを備えた最小限の依存関係ベースのプラグイン システム |
| プロセス | ?子プロセスを作成し、それらをチェーンします (Async ライブラリでも使用可能) |
| 反射 | ?シリアル化のためにコンパイル時に C++ 型を記述する |
| シリアル化バイナリ | ? Reflection を使用してバイナリ形式との間でシリアル化する |
| 連載テキスト | ? Reflection を使用してテキスト形式 (JSON) との間でシリアル化する |
| ソケット | ?同期ソケット ネットワーキングと DNS ルックアップ |
| 文字列 | ?文字列の書式設定/変換/操作 (ASCII / UTF8 / UTF16) |
| テスト | ?他のすべてのライブラリで使用される単純なテスト フレームワーク |
| ねじ切り | ?アトミック、スレッド、スレッドプール、ミューテックス、条件変数 |
| 時間 | ?時間の処理 (相対、絶対、高解像度) |
各ライブラリは、そのステータスを示すために色分けされています。
一部のライブラリには C バインディングがあります
| バインディング | 説明 |
|---|---|
| sc_ハッシュ | ハッシュ ライブラリのバインディング |
ライブラリは、ビルド システムを必要とせずに、プロジェクトに 1 つのファイルを追加するだけで、そのまま使用できます。
ライブラリを使用するだけの場合は、「Building (user)」を参照してください。
間もなく:
SC_COMPILER_ENABLE_STD_CPP=1を定義します。Libraries/[Library]/*.h ) を含めます。 CoreFoundation.frameworkのリンクCoreServices.frameworkのリンクlibdl ( -ldl )libpthread ( -lpthread )SCExample では、Sane C++ ライブラリと Dear ImGui ライブラリおよび sokol ライブラリの統合を紹介します (サンプル ページを参照)。
テストは自己ホスト型の SC::Build プロジェクト ジェネレーターを使用してビルドされ、C++ でビルドが記述されます。
テストを実行するには、[Building (contributor)] をオンにします。
@pagghiu.bsky.social@pagghiu_@pagghiuあるいは、次の Discord も読んでいます。
@Pagghiu 、英語とイタリア語の両方が問題ありません)@Pagghiu )時間をかけて原則とコーディング スタイルをお読みください。
その後、CONTRIBUTING.md ガイドを読むことができます。
Sane C++ ライブラリは MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE.txt を参照してください。
この YouTube チャンネルには、開発プロセスの一部を示すビデオがいくつかあります。
Sanecoding Blog には、このプロジェクトに関する一連のブログ投稿があります。