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 には、このプロジェクトに関する一連のブログ投稿があります。