ไลบรารี C และโครงสร้างข้อมูลแบบพกพาแบบสแตนด์อโลน (C99)
แต่ละโฟลเดอร์เป็นแบบสแตนด์อโลนโดยมีคู่ส่วนหัว/ซอร์สเดียวอยู่ในนั้น ไม่มี
สร้างสำหรับไลบรารี เพียงคัดลอกไฟล์ที่คุณต้องการ
เช่น หากคุณต้องการตัวบันทึก ให้คัดลอก sc_log.h และ sc_log.c ไปยังโปรเจ็กต์ของคุณ
มีการครอบคลุมสาขา 100% บน Linux และ CI ทำงานบน
ระบบปฏิบัติการ : Linux, MacOS, FreeBSD และ Windows คอมไพเลอร์: GCC, Clang, MSVC Arch : x64, aarch64, armv6(32 บิต), armv7(32 บิต), ppc64le, s390x(ปลายใหญ่), riscv64 สารฆ่าเชื้อ: สารฆ่าเชื้อ valgrind และ clang/gcc (ที่อยู่, ไม่ได้กำหนด, เธรด)
ห้องสมุด | คำอธิบาย |
---|---|
อาร์เรย์ | อาร์เรย์/เวกเตอร์ทั่วไป |
บัฟเฟอร์ | บัฟเฟอร์สำหรับตัวแปรการเข้ารหัส/ถอดรหัส เหมาะที่สุดสำหรับการใช้งานโปรโตคอล/การทำให้เป็นอนุกรม |
เงื่อนไข | Wrapper แบบมีเงื่อนไขสำหรับ Posix และ Windows |
ซีอาร์ซี32 | Crc32c ใช้คำสั่ง CPU crc32c หากมี |
กอง | ฮีปขั้นต่ำซึ่งสามารถใช้เป็นคิวฮีปสูงสุด/ลำดับความสำคัญได้เช่นกัน |
อินี่ | ตัวแยกวิเคราะห์ Ini |
รายการที่เชื่อมโยง | รายการเชื่อมโยงที่ล่วงล้ำ |
คนตัดไม้ | คนตัดไม้ |
แผนที่ | แฮชแมปที่อยู่แบบเปิดที่มีประสิทธิภาพสูง |
แผนที่หน่วยความจำ | Mmap wrapper สำหรับ Posix และ Windows |
มิวเท็กซ์ | เครื่องห่อ Mutex สำหรับ Posix และ Windows |
ตัวเลือก | ตัวแยกวิเคราะห์อาร์กิวเมนต์ Cmdline พื้นฐานมากอย่างหนึ่ง |
สมบูรณ์แบบ | ยูทิลิตี้เกณฑ์มาตรฐานเพื่อรับข้อมูลตัวนับประสิทธิภาพผ่าน perf_event_open() |
คิว | คิวทั่วไปซึ่งสามารถใช้เป็น dequeue/stack/list ได้เช่นกัน |
เซาท์แคโรไลนา | ฟังก์ชั่นยูทิลิตี้ |
สัญญาณ | สัญญาณปลอดภัย snprintf และตัวจัดการสัญญาณ (การจัดการ CTRL + C, การพิมพ์ backtrace เมื่อเกิดข้อขัดข้อง ฯลฯ ) |
ซ็อกเก็ต | ซ็อกเก็ตไปป์ / tcp (รวมถึงซ็อกเก็ตโดเมนยูนิกซ์ด้วย) /Epoll/Kqueue/WSAPoll สำหรับ Posix และ Windows |
เชือก | ความยาวนำหน้า, สตริง C สิ้นสุดด้วยค่า null |
ด้าย | เครื่องพันเกลียวสำหรับ Posix และ Windows |
เวลา | ฟังก์ชันเวลาและโหมดสลีปสำหรับ Posix และ Windows |
จับเวลา | การใช้วงล้อไทม์มิ่งแบบแฮชพร้อมตัวเลือกการสำรวจ / ยกเลิกที่รวดเร็ว |
ยูริ | ตัวแยกวิเคราะห์ uri พื้นฐาน |
มันดีกว่าไลบรารี X หรือไม่?
ฉันมักจะใช้ไลบรารีเหล่านี้กับแอปพลิเคชันฝั่งเซิร์ฟเวอร์ประสิทธิภาพสูง อีกด้วย,
ฉันสนใจโค้ดที่อ่านง่ายและแก้ไขข้อบกพร่องได้ง่าย โดยสรุป ห้องสมุดเหล่านี้แสดง
รสนิยมของฉัน (การแลกเปลี่ยน) เกี่ยวกับประสิทธิภาพ/การออกแบบ API/ความสามารถในการอ่าน คุณอาจจะหรืออาจ
ไม่ชอบมัน
ทำไมคุณไม่เปลี่ยน API ที่นี่ที่ X เพื่อให้ใช้งานได้ง่ายกว่า
โปรดส่งคำขอดึงข้อมูล แต่ต้องแน่ใจว่าคุณไม่ได้แนะนำสิ่งที่ไม่ได้กำหนด
พฤติกรรม. เป็นไปได้ที่จะจัดหา API ที่ดีกว่า โดยเฉพาะกับไลบรารีทั่วไป
หากคุณไม่สนใจพฤติกรรมที่ไม่ได้กำหนดไว้ ฉันพยายามหลีกเลี่ยงมัน
วิธีที่มีประสิทธิภาพมากที่สุดในการใช้ไลบรารีเหล่านี้คืออะไร?
เช่นเดียวกับรหัสอื่น ๆ เพิ่มลงในโปรเจ็กต์ของคุณเป็นไฟล์ต้นฉบับและใช้งานได้อย่างเหมาะสม
-O3 -ชั้นลอย + PGO มันอาจไม่สร้างความแตกต่างให้กับกรณีการใช้งานของคุณ
มีการใช้ไลบรารี X ในผลิตภัณฑ์ใด ๆ หรือไม่?
ห้องสมุดบางแห่งใช้ในการผลิต แต่โปรดทดสอบตัวเองทุกครั้ง
มีปล่อยบ้างไหม?
กรุณาใช้สาขาหลัก ก็ถือว่ามั่นคง
คุณจะรักษา API ให้เสถียรหรือไม่?
โปรดอย่าคาดหวัง API ที่เสถียร ห้องสมุดเหล่านี้ค่อนข้างมาก
มีขนาดเล็ก (ส่วนใหญ่มีโค้ดน้อยกว่าสองสามร้อยบรรทัด) และในอุดมคติของคุณ
ควรจะอ่านโค้ดและทำความเข้าใจว่ามันทำอะไรและปรับให้เข้ากับของคุณ
ความต้องการ ดังนั้นคุณไม่ควรอัพเดตไลบรารีสุ่มสี่สุ่มห้า ฉันหวังว่าคุณจะจัดการ
ความแตกต่างของ API ที่เป็นไปได้ใด ๆ ได้อย่างง่ายดาย ที่ถูกกล่าวว่าฉันจะทำให้ดีที่สุดเพื่อรักษา
API เสถียร