Perpustakaan C++ Sane adalah sekumpulan perpustakaan abstraksi platform C++ untuk macOS, Windows dan Linux.
Prinsip:
✅ Waktu kompilasi yang cepat
✅ Bebas kembung
✅ Kode sederhana yang dapat dibaca
✅ Mudah diintegrasikan
⛔️ Tidak Ada Perpustakaan Standar C++ / Pengecualian / RTTI
⛔️ Tidak ada ketergantungan pihak ketiga (lebih memilih OS API)
Kunjungi situs dokumentasi untuk informasi lebih lanjut.
Perpustakaan | Keterangan |
---|---|
Algoritma | ? Pustaka placeholder tempat algoritme templat akan ditempatkan |
asinkron | ? Async I/O (file, soket, pengatur waktu, proses, acara fs, pengaktifan thread) |
Aliran Asinkron | ? Membaca, mengubah, dan menulis data secara bersamaan dari sumber asinkron ke tujuan. |
Membangun | ? Sistem build minimal yang buildnya dijelaskan dalam C++ |
Kontainer | ? Kontainer generik (SC::Vector, SC::SmallVector, SC::Array, dll.) |
Mengajukan | ? I/O File Disk Sinkron |
Sistem File | ? Operasi Sistem File { ada, salin, hapus } untuk { file dan direktori } |
Iterator Sistem File | ? Menghitung file dan direktori di dalam jalur tertentu |
Pengamat Sistem File | ? Pemberitahuan {tambah, hapus, ganti nama, ubah} untuk file dan direktori |
Dasar | ? Tipe primitif, penegasan, batasan, Fungsi, Rentang, Hasil, Persatuan yang Ditandai |
hashing | ? Hitung hash MD5 , SHA1 atau SHA256 untuk aliran byte |
Http | ? Pengurai HTTP, klien dan server |
Pengaya | ? Sistem plugin berbasis ketergantungan minimal dengan hot-reload |
Proses | ? Buat proses anak dan rangkai (juga dapat digunakan dengan perpustakaan Async) |
Cerminan | ? Jelaskan tipe C++ pada waktu kompilasi untuk serialisasi |
Serialisasi Biner | ? Buat serial ke dan dari format biner menggunakan Refleksi |
Teks Serialisasi | ? Buat serial ke/dari format teks (JSON) menggunakan Refleksi |
Stopkontak | ? Jaringan soket sinkron dan pencarian DNS |
string | ? Pemformatan string/konversi/manipulasi (ASCII/UTF8/UTF16) |
Pengujian | ? Kerangka pengujian sederhana yang digunakan oleh semua perpustakaan lainnya |
benang | ? Atom, thread, kumpulan thread, mutex, variabel kondisi |
Waktu | ? Penanganan waktu (relatif, absolut, resolusi tinggi) |
Setiap perpustakaan diberi kode warna untuk menandakan statusnya:
Beberapa Perpustakaan memiliki binding C
Mengikat | Keterangan |
---|---|
sc_hashing | Binding untuk Perpustakaan Hashing |
Perpustakaan dapat digunakan apa adanya, menambahkan satu file ke proyek Anda dan tanpa memerlukan sistem pembangunan apa pun.
Lihat Gedung (pengguna) untuk menggunakan perpustakaan saja
Segera:
SC_COMPILER_ENABLE_STD_CPP=1
jika Anda berencana menggunakan pustaka C++ StandarLibraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)SCExample menampilkan integrasi Perpustakaan Sane C++ bersama dengan perpustakaan Dear ImGui dan sokol (lihat halaman Contoh).
Pengujian dibuat dengan generator proyek SC::Build yang dihosting sendiri, yang menjelaskan build dalam C++.
Centang Gedung (kontributor) untuk menjalankan pengujian.
@pagghiu.bsky.social
@pagghiu_
@pagghiu
Atau saya juga membaca perselisihan berikut:
@Pagghiu
dari saluran mana pun yang sesuai atau hanya DM, bahasa Inggris dan Italia keduanya baik-baik saja)@Pagghiu
dari saluran mana pun yang sesuai atau hanya DM)Harap luangkan waktu untuk membaca Prinsip dan Gaya Pengkodean.
Setelah itu anda bisa membaca panduan CONTRIBUTING.md.
Perpustakaan C++ yang waras dilisensikan di bawah Lisensi MIT, lihat LICENSE.txt untuk informasi lebih lanjut.
Di Channel YouTube ini terdapat beberapa video yang menunjukkan sedikit proses pengembangan.
Di Sane Coding Blog ada serangkaian postingan blog tentang proyek ini.