C ++ Resource Collection เวอร์ชันภาษาจีน
Awesome-CPP เป็นรายการของทรัพยากร C ++ ที่ริเริ่มและบำรุงรักษา fffaraz รวมถึง: ไลบรารีมาตรฐาน, เฟรมเวิร์กแอปพลิเคชันเว็บ, ปัญญาประดิษฐ์, ฐานข้อมูล, การประมวลผลภาพ, การเรียนรู้ของเครื่อง, การบันทึก, การวิเคราะห์รหัส, ฯลฯ
เวอร์ชันภาษาจีนได้รับการดูแลและอัปเดตโดย开源前哨และทีมบัญชี WeChat อย่างเป็น 4400 Star CPP开发者
ผู้เข้าร่วมในโครงการนี้
ผู้ดูแล:开源前哨และ CPP开发者ทีมงานบัญชีสาธารณะ WeChat "Open Source Outpost" จะแบ่งปันโครงการโอเพ่นซอร์สล่าสุดที่น่าสนใจและเป็นที่นิยมในคอลัมน์ Zhihu แต่ละโครงการมีการแนะนำและตัวอย่างโดยละเอียด พอร์ทัล: https://www.zhihu.com/column/c_1317124962785062912
ผู้มีส่วนร่วม: Cccookiee, Jingerjoe, Yunzhongyou, Bingbin, Juliesand, Zzmarquis, Yan Minhui, Tangyouhua, Shenmian
หมายเหตุ: รายการไม่ได้รับการจัดอันดับและจะได้รับการอัปเดตเป็นครั้งคราว
สารบัญ
- ห้องสมุดมาตรฐาน
- กรอบ
- AI
- ลูปเหตุการณ์แบบอะซิงโครนัส
- เสียง
- นิเวศวิทยา
- การบีบอัด
- การพร้อมกัน
- คอนเทนเนอร์
- การเข้ารหัสลับ
- ฐานข้อมูล
- การดีบัก
- เครื่องยนต์เกม
- ส่วนต่อประสานผู้ใช้กราฟิก
- กราฟิก
- การประมวลผลภาพ
- การทำให้เป็นสากล
- JSON
- บันทึก
- การเรียนรู้ของเครื่องจักร
- คณิตศาสตร์
- มัลติมีเดีย
- เครือข่าย
- ฟิสิกส์
- หุ่นยนต์
- การคำนวณทางวิทยาศาสตร์
- สคริปต์
- การทำให้เป็นอนุกรม
- วิดีโอ
- เครื่องเสมือน
- เฟรมเวิร์กเว็บแอปพลิเคชัน
- XML
- ผสมหลาย
- ซอฟต์แวร์
- ผู้ประกอบการ
- คอมไพเลอร์ออนไลน์
- ผู้ดีทำการ
- สภาพแวดล้อมการพัฒนาแบบบูรณาการ
- สร้างระบบ
- การวิเคราะห์รหัสสถิต
ห้องสมุดมาตรฐาน
ไลบรารีมาตรฐาน C ++ ประกอบด้วยคอนเทนเนอร์ STL อัลกอริทึมและฟังก์ชั่น
- C ++ Standard Library: เป็นชุดของชุดของคลาสและฟังก์ชั่นที่เขียนด้วยภาษาหลักและยังเป็นส่วนหนึ่งของมาตรฐานของ C ++ ISO
- ไลบรารีเทมเพลตมาตรฐาน: ไลบรารีเทมเพลตมาตรฐาน
- C Posix Library: ข้อกำหนดของไลบรารีมาตรฐาน C สำหรับระบบ POSIX
- คณะกรรมการมาตรฐาน ISO C ++: คณะกรรมการมาตรฐาน C ++
- ห้องสมุด GNU C: จุดประสงค์ของคู่มือนี้คือการแสดงวิธีการใช้ห้องสมุด GNU C
กรอบ
C ++ Framework และห้องสมุด
- ABSEIL-CPP: ห้องสมุดทั่วไป Abseil C ++
- ไลบรารีมาตรฐาน Apache C ++: เป็นชุดของอัลกอริทึม, คอนเทนเนอร์, ตัววนซ้ำและส่วนประกอบพื้นฐานอื่น ๆ
- APR: Apache Portable Runtime Library ห้องสมุดข้ามแพลตฟอร์มอื่น
- ASL: ไลบรารีซอร์สโค้ด Adobe ให้การตรวจสอบแบบเพียร์และไลบรารีซอร์สโค้ด C ++ แบบพกพา
- Boost: ชุดของห้องสมุด C ++ อเนกประสงค์จำนวนมาก
- BDE: จากสภาพแวดล้อมการพัฒนาของ Bloomberg Information Lab
- Cinder: ให้ชุมชนการพัฒนาโอเพ่นซอร์สด้วยการเข้ารหัสเชิงสร้างสรรค์ที่มีคุณภาพระดับมืออาชีพ
- ห้องสมุดพื้นฐาน CO - C ++ รวมถึงไลบรารี Coroutine แบบ Go -Style, Log Library, JSON Library, RPC Framework และส่วนประกอบพื้นฐานอื่น ๆ
- CXXOMFORT: ห้องสมุดที่มีน้ำหนักเบาซึ่งมีเฉพาะไฟล์ส่วนหัวพอร์ตคุณสมบัติใหม่ของ C ++ 11 ถึง C ++ 03
- DLIB: ห้องสมุด C ++ ข้ามสากลที่ออกแบบมาโดยใช้การเขียนโปรแกรมตามสัญญาและเทคโนโลยี C ++ ที่ทันสมัย
- Eastl: ส่วนสาธารณะ EA-Stl
- ETL: ไลบรารีเทมเพลตแบบฝัง
- FFEAD-CPP: กรอบการพัฒนาแอปพลิเคชันระดับองค์กร
- Folly: ห้องสมุดโอเพนซอร์ส C ++ พัฒนาและใช้งานโดย Facebook
- FunctionAlPlus: C ++ ไลบรารีการเขียนโปรแกรมฟังก์ชั่นการเขียนโค้ด C ++ ที่อ่านง่ายและง่ายต่อการอ่าน
- GLIB: GLIB จัดเตรียมบล็อกรหัสหลักสำหรับไลบรารีและแอปพลิเคชันที่เขียนใน C.
- Juce: ไลบรารีคลาส C ++ แบบรวมทุกอย่างสำหรับการพัฒนาซอฟต์แวร์ข้ามแพลตฟอร์ม
- KIGS Framework: C ++ ฟรีและโอเพนซอร์สโมดูล, มัลติฟังก์ชั่น, เฟรมเวิร์ก RAD ข้ามแพลตฟอร์ม
- Libphenom: กรอบเหตุการณ์สำหรับการสร้างระบบประสิทธิภาพสูงและปรับขนาดได้สูง
- Libsourcey: C ++ 11 Evented IO สำหรับการสตรีมวิดีโอแบบเรียลไทม์และแอพพลิเคชั่นเครือข่ายประสิทธิภาพสูง
- Libu: ไลบรารีเครื่องมือหลายแพลตฟอร์มที่เขียนด้วยภาษา C
- Loki: การออกแบบห้องสมุด C ++ รวมถึงการใช้รูปแบบการออกแบบทั่วไปและสำนวน
- MILI: ไลบรารี C ++ ขนาดเล็กที่มีไฟล์ส่วนหัวเท่านั้น
- OpenFrameworks: พัฒนาชุดเครื่องมือ C ++ สำหรับการเข้ารหัสเชิงสร้างสรรค์
- QT: แอปพลิเคชันข้ามแพลตฟอร์มและเฟรมเวิร์กอินเทอร์เฟซผู้ใช้
- เหตุผล: เฟรมเวิร์กข้ามแพลตฟอร์มที่ช่วยให้นักพัฒนาสามารถใช้ Java, .NET และ Python ได้ง่ายขึ้นในขณะเดียวกันก็ตอบสนองความต้องการของพวกเขาสำหรับประสิทธิภาพและข้อดีของ C ++
- รูท: ชุดเฟรมเวิร์กเชิงวัตถุที่มีฟังก์ชั่นทั้งหมดที่สามารถประมวลผลและวิเคราะห์ข้อมูลจำนวนมากได้อย่างมีประสิทธิภาพมากและใช้โดยสถาบันวิจัยพลังงานปรมาณูในยุโรป
- STLPORT: เป็นตัวแทนของ STL
- STXXL: ไลบรารีเทมเพลตมาตรฐานสำหรับชุดข้อมูลขนาดใหญ่เพิ่มเติม
- TBOX: Multi-Platform C Library คล้ายกับ GLIB
- Ultimate ++: C ++ Cross-Platform Fast Application Development Framework
- USTL: ห้องสมุด STL ขนาดเล็ก
- ไลบรารีเทมเพลต Windows: ไลบรารี C ++ สำหรับการพัฒนาแอปพลิเคชัน Windows และส่วนประกอบ UI
- YOM2: เร็ว orthogonal เปิดหลายวิธีแทนที่ YOM11
AI
- Annetgpgpu: A GPU (CUDA)-ห้องสมุดเครือข่ายประสาทเทียมที่ใช้
- BTSK: เครื่องมือตัวเรียกใช้งานต้นไม้พฤติกรรม
- การพัฒนาวัตถุ: ไลบรารีการคำนวณแบบเทมเพลต ANSI C ++ Evolution Library สามารถช่วยคุณเขียนอัลกอริทึมการเพิ่มประสิทธิภาพแบบสุ่มของคุณเองได้อย่างรวดเร็ว
- Frugally-Deep: C ++ Library โดยใช้ Keras Model, เฉพาะไฟล์ส่วนหัวเท่านั้น
- Genann: ห้องสมุด N Neural Network S
- MXNET: น้ำหนักเบาพกพาได้แบบกระจาย/การเรียนรู้แบบมือถือที่มีความยืดหยุ่นด้วยการจัดการข้อมูลการไหลของข้อมูลการกลายพันธุ์ที่ตระหนักถึงการกลายพันธุ์ เหมาะสำหรับ Python, R, Julia, Scala, GO, JavaScript และอีกมากมาย
- Pytorch: ห้องสมุด Python ที่มีการเร่งความเร็ว CPU ที่ทรงพลังรวมถึงเทนเซอร์และเครือข่ายประสาทแบบไดนามิก
- recast/detour: (3D) เครื่องกำเนิดไฟฟ้านำทางและการค้นหาเส้นทางส่วนใหญ่ใช้ในเกม
- TensorFlow: ไลบรารีซอฟต์แวร์โอเพ่นซอร์สที่ใช้กราฟการไหลของข้อมูลสำหรับการคำนวณเชิงตัวเลข
- CNTK: Microsoft Cognitive Toolkit (CNTK) ซึ่งเป็นไลบรารีโอเพนซอร์สของเครื่องมือการเรียนรู้ลึก
- Tiny-DNN: กรอบการเรียนรู้ลึกที่ปราศจากการพึ่งพาใน C ++ 11 โดยมีไฟล์ส่วนหัวเท่านั้น
- VELES: แพลตฟอร์มแบบกระจายสำหรับการพัฒนาแอปพลิเคชันการเรียนรู้อย่างรวดเร็วอย่างรวดเร็ว
- Kaldi: ชุดเครื่องมือจดจำเสียง
ลูปเหตุการณ์แบบอะซิงโครนัส
- ASIO: ไลบรารี C ++ ข้ามแพลตฟอร์มสำหรับเครือข่ายและการเขียนโปรแกรม I/O พื้นฐานโดยใช้วิธี C ++ ที่ทันสมัยเพื่อให้นักพัฒนามีแบบจำลองแบบอะซิงโครนัสที่สอดคล้องกัน
- Boost.asio: ไลบรารี C ++ ข้ามแพลตฟอร์มสำหรับเครือข่ายและการเขียนโปรแกรม I/O พื้นฐาน
- C ++ Framework: การใช้งานแบบโอเพ่นซอร์สของโมเดลนักแสดงใน C ++
- Libev: เวลาที่มีประสิทธิภาพสูงเต็มไปด้วยประสิทธิภาพสูงการเลียนแบบ libevent เล็กน้อย แต่ไม่มีข้อ จำกัด เช่น Libevent อีกต่อไปและยังแก้ไขข้อบกพร่องบางอย่าง
- Libevent: ไลบรารีการแจ้งเตือนเหตุการณ์
- Libhv: ห้องสมุดลูปเหตุการณ์ข้ามแพลตฟอร์ม
- Libuv: I/O แบบข้ามแพลตฟอร์มข้าม
- Promise-CPP: ไลบรารีที่ใช้ Promise/A+ Standard เฉพาะไฟล์ส่วนหัวเท่านั้น
- UVW: C ++ encapsulator ของ Libuv
เสียง
เสียง, เสียง, เพลง, ห้องสมุดเพลงดิจิตอล
- Audiofile: ไลบรารี C ++ อย่างง่ายสำหรับการอ่านและเขียนไฟล์เสียง
- FMOD: ใช้เครื่องมือสร้างเสียงข้ามแพลตฟอร์มและเครื่องมือสร้างเกมสำหรับเนื้อหาเสียง
- KFR: FAST, FRAMEWORK C ++ DSP ที่ทันสมัย, FFT, ตัวกรอง FIR/IIR และการแปลงอัตราตัวอย่าง
- Lame: Lame เป็นเครื่องเข้ารหัส MPEG ที่มีคุณภาพสูงเลเยอร์ชั้นสาม (MP3)
- libsndfile: ไลบรารี c ที่ห่อหุ้ม C ++ ใช้ในการอ่านและเขียนไฟล์ที่มีเสียงตัวอย่างผ่านอินเตอร์เฟสไลบรารีมาตรฐาน
- Libsoundio: A C library สำหรับอินพุตและเอาต์พุตแบบเรียลไทม์แพลตฟอร์มข้ามแพลตฟอร์ม
- Maximilian: C ++ Audio และ Music Digital Processing Library
- Openal: Open Source Audio Library --- Cross-Platform Audio API
- MINIAUDIO: ห้องสมุดสำหรับการเล่นเสียงแบบไฟล์เดียวและการบันทึก
- OPUS: ตัวแปลงสัญญาณเสียงที่เปิดกว้างไม่มีค่าลิขสิทธิ์และเป็นสากล
- Portaudio: ฟรี, cross-platform, Open Source Audio I/O Library
- SELA: Simplie Lossless Audio
- Soloud: เอ็นจิ้นเสียงเกมที่เรียบง่ายและพกพา
- Speex: ฟรี Codec ที่ถูกทิ้งโดย Opus
- Tonic: C ++ ใช้งานง่ายและการสังเคราะห์เสียงที่มีประสิทธิภาพ
- VORBIS: Ogg Vorbis เป็นรูปแบบเสียงที่บีบอัดสากลที่ไม่ได้เขียนขึ้นอย่างสมบูรณ์แบบไม่มีค่าลิขสิทธิ์
- MINIMP3: โดเมนสาธารณะ, การใช้งานห้องทำความสะอาดเครื่องถอดรหัส MP3, ไฟล์ส่วนหัวเท่านั้น
- Verovio: ห้องสมุดสัญลักษณ์ดนตรีที่รวดเร็วและมีน้ำหนักเบา
- WAV2LETTER ++: โดเมนสาธารณะไลบรารีการประมวลผลคำพูดโอเพ่นซอร์สอย่างรวดเร็วที่เขียนใน C ++ โดยใช้ไลบรารี ArrayFire Tensor และไลบรารีการเรียนรู้ของเครื่องจักรไฟฉายเพื่อให้ได้ประสิทธิภาพสูงสุด
นิเวศวิทยา
ชีวสารสนเทศศาสตร์จีโนมและเทคโนโลยีชีวภาพ
BIOC ++: คลังคอมพิวเตอร์ C ++ สำหรับชีวสารสนเทศศาสตร์
บริสุทธิ์: ไลบรารีโอเพนซอร์ส C ++ สำหรับการจำลองการคำนวณแบบจำลองทางคณิตศาสตร์ที่พัฒนาขึ้นสำหรับสรีรวิทยาและชีววิทยา
LIBESSION: A C ++ ห้องสมุดสำหรับเป็นตัวแทนและวิเคราะห์ข้อมูลทางพันธุกรรมของประชากร
SEQAN: อัลกอริทึมและโครงสร้างข้อมูลมุ่งเน้นไปที่การวิเคราะห์ลำดับข้อมูลทางชีวภาพ
VCFLIB: ไลบรารี C ++ สำหรับการแยกวิเคราะห์และประมวลผลไฟล์ VCF
WHAM: ใช้การทดสอบแบบเชื่อมโยงโดยตรงกับการกลายพันธุ์โครงสร้างของยีนในไฟล์ BAM
บิตสตรีม
- JECH/DHT: ห้องสมุดตารางแฮชแบบกระจายบิตสตรีมที่ใช้โดย C.
- libtorrent (aka libtorrent-rasterbar): การใช้งาน C ++ Bitstream ที่มีประสิทธิภาพและใช้งานได้
- libtorrent (aka libtorrent-rakshasa): ห้องสมุดบิตสตรีม
- Libutp: ห้องสมุดโปรโตคอลการขนส่ง Utorrent
เคมี
เคมีธรณีเคมีชีวเคมี
- D-Seams: กลไกการวิเคราะห์วงโคจรของโมเลกุลที่มีการใช้งาน C ++ และ LUA ของ Nix ซึ่งเป็นตัวย่อสำหรับการวิเคราะห์โครงสร้างที่เลื่อนออกไปของการจำลองโมเลกุล
- GROMACS: การใช้พลวัตโมเลกุลแบบขนานของการส่งข้อความผ่าน
- REAKTORO: กรอบการคำนวณสำหรับการสร้างแบบจำลองระบบปฏิกิริยาเคมีใน C ++ และ Python
- Lammps: รหัสโมเลกุลแบบคลาสสิกสำหรับการสร้างแบบจำลองวัสดุมันเป็นตัวย่อสำหรับเครื่องจำลองแบบอะตอม/โมเลกุลขนาดใหญ่ขนาดใหญ่
อินเตอร์เฟสบรรทัดคำสั่ง
อินเทอร์เฟซผู้ใช้คอนโซล/เทอร์มินัลอินเตอร์เฟสบรรทัดคำสั่ง
- ARGH !: ตัวจัดการพารามิเตอร์มินิมัลลิสต์ที่มีเพียงไฟล์ส่วนหัวเท่านั้น
- Taywee / Args: ไลบรารีการแยกวิเคราะห์พารามิเตอร์ C ++ อย่างง่ายที่มีไฟล์ส่วนหัวเท่านั้น
- boost.program_options: รับไลบรารีสำหรับการเลือกโปรแกรมผ่านวิธีการทั่วไปเช่นบรรทัดคำสั่งและไฟล์การกำหนดค่า
- Clara: ใช้งานง่ายและใช้งานได้ง่ายสำหรับตัวแยกวิเคราะห์บรรทัดคำสั่งสำหรับ C ++ 11 และใหม่กว่า
- CLI: ไลบรารี Cross-Platform C ++ 14 สำหรับอินเทอร์เฟซบรรทัดคำสั่งแบบโต้ตอบโดยมีไฟล์ส่วนหัวเท่านั้น
- CLI11: ไลบรารี C ++ 11 แบบเดี่ยวหรือหลายไฟล์สำหรับการแยกวิเคราะห์ CLI แบบง่ายและขั้นสูงโดยมีไฟล์ส่วนหัวเท่านั้น
- arro2783/cxxopts: ตัวเลือกบรรทัดคำสั่ง Lightweight C ++ ตัวแยกวิเคราะห์
- docopt.cpp: ไลบรารีที่สร้างตัวเลือกที่แยกวิเคราะห์จากสตริงเอกสาร
- GFLAGS: โมดูลแฟล็กบรรทัดคำสั่งของ C ++
- ตัวชี้วัด: ตัวบ่งชี้กิจกรรมของ C ++ ที่ทันสมัย
- Linenoise: ตัวเลือกอิสระเล็ก ๆ สำหรับ Readline และ Libedit
- LINENOISE-NG: การเปลี่ยน GNU แบบพกพาแบบพกพาขนาดเล็กสำหรับ Linux, Windows และ MacOS ซึ่งสามารถจัดการอักขระ UTF-8 ได้
- Lyra: ใช้งานง่ายและใช้งานได้ง่ายสำหรับตัวแยกวิเคราะห์บรรทัดคำสั่งสำหรับ C ++ 11 และใหม่กว่า
- NCURSES: ส่วนต่อประสานผู้ใช้เทอร์มินัล
- PDCurses: ห้องสมุดโดเมนสาธารณะสาปแช่งที่มีซอร์สโค้ดและไลบรารีที่คอมไพล์ล่วงหน้า
- OPLXX: รองรับ UTF-8, การไฮไลต์ไวยากรณ์, การเปลี่ยนสายพร้อมพรอมต์และ liabedit แทนที่ซึ่งสามารถทำงานกับ UNIX และ Windows ได้
- Tabulate: เครื่องมือสร้างตาราง C ++ ที่ทันสมัย
- TCLAP: ห้องสมุดที่เป็นผู้ใหญ่เสถียรและหลากหลายสำหรับการกำหนดและเข้าถึงพารามิเตอร์บรรทัดคำสั่งใน ANSI C ++
- Termbox: A C Library สำหรับการเขียนอินเทอร์เฟซผู้ใช้ที่ใช้ข้อความ
การบีบอัด
ห้องสมุดการบีบอัดและเก็บถาวร
- BIT7Z: C ++ Library Static ให้อินเทอร์เฟซอย่างง่ายกับ 7-Zip DLLS
- Brotli: รูปแบบการบีบอัด Brotli พัฒนาโดย Google
- BZIP2: การบีบอัดข้อมูลสิทธิบัตรฟรีฟรีและการบีบอัดข้อมูลคุณภาพสูงอย่างสมบูรณ์
- FINITESTATEENTROPY: ตัวแปลงสัญญาณเอนโทรปีรุ่นใหม่: Finite State Entropy and Huff ()
- PhysicsFs: ห้องสมุดที่ให้การเข้าถึงที่เป็นนามธรรมไปยังจดหมายเหตุต่าง ๆ ส่วนใหญ่ใช้ในวิดีโอเกมและแรงบันดาลใจในการออกแบบส่วนหนึ่งมาจากระบบย่อยไฟล์ของ Quake3
- Karchive: ห้องสมุดสำหรับการสร้างการอ่านการเขียนและการจัดการไฟล์เก็บถาวรเช่น ZIP และ TAR
- Libarchive: คลังเก็บและการบีบอัดแบบหลายรูปแบบ
- LZ4: อัลกอริทึมการบีบอัดที่รวดเร็วมาก
- LZFSE: ไลบรารีการบีบอัด LZFSE และเครื่องมือบรรทัดคำสั่ง
- Lzham: ฐานข้อมูลการบีบอัดแบบไม่สูญเสียอัตราส่วนการบีบอัดอยู่ใกล้กับ LZMA แต่ความเร็วในการบีบอัดเร็วกว่ามาก
- LZMA: รูปแบบค่าเริ่มต้นรูปแบบ 7Z และวิธีการบีบอัดทั่วไป
- LZMAT: ไลบรารีการบีบอัดข้อมูลที่ไม่สูญเสียแบบเรียลไทม์อย่างรวดเร็วมาก
- MINIZ: ไฟล์ต้นฉบับ C เดี่ยว, ไลบรารีขนาดกะทัดรัด/ขยายไลบรารีโดยใช้ API ที่เข้ากันได้กับ ZLIB, ZIP เก็บถาวรอ่านและเขียนและวิธีการเขียน PNG
- MINIZIP: การแก้ไขข้อผิดพลาดล่าสุดของ ZLIB รองรับ PKWare Disk Spanning, AES การเข้ารหัสและการบัฟเฟอร์ IO
- SMAZ: ไลบรารีการบีบอัดตัวละครขนาดเล็ก
- Snappy: การบีบอัดอย่างรวดเร็วและการบีบอัด
- ZLIB: ไลบรารีการบีบอัดข้อมูลกระแสข้อมูลขนาดกะทัดรัดมาก
- ZLIB-NG: ZLIB สำหรับระบบ "รุ่นต่อไป" ฝังการแทนที่การเพิ่มประสิทธิภาพที่สำคัญบางอย่าง
- ZSTD: Zstandard - อัลกอริทึมการบีบอัดแบบเรียลไทม์อย่างรวดเร็ว พัฒนาโดย Facebook
- Zziplib: ให้สิทธิ์การอ่านสำหรับคลังเก็บซิป
การพร้อมกัน
การดำเนินการพร้อมกันและมัลติเธรด
- Alpaka: ห้องสมุดนามธรรมสำหรับการเร่งความเร็วเคอร์เนลแบบขนาน
- Arrayfire: ห้องสมุด GPU ที่มีวัตถุประสงค์ทั่วไป
- Async ++: เฟรมเวิร์กขนานที่มีน้ำหนักเบาสำหรับ C ++ 11 ซึ่งได้รับแรงบันดาลใจจากไลบรารี Microsoft PPL และข้อเสนอมาตรฐาน N3428 C ++
- Boost.Compute: C ++ GPU การคำนวณไลบรารีสำหรับ OpenCl
- BOLT: ไลบรารีเทมเพลต C ++ ที่เหมาะสำหรับ GPU
- CK: Primitives พร้อมกันกลไกการกู้คืนหน่วยความจำที่ปลอดภัยและโครงสร้างข้อมูลที่ไม่ปิดกั้น
- พร้อมกัน: C ++ 11 ของผู้ผลิตแบบหลายผู้ผลิตและคิวที่ไม่มีการล็อคหลายเครื่อง
- CPP-TaskFlow: การเขียนโปรแกรมแบบขนานอย่างรวดเร็ว C ++ พร้อมกับการพึ่งพางาน
- CUB: CUB ให้บริการซอฟต์แวร์ที่ใช้ซ้ำได้ล่าสุดสำหรับแต่ละเลเยอร์ของโหมดการเขียนโปรแกรม CUDA
- CUDA-API-WRAPPERS: CUPAPSOULAD C ++ ที่ทันสมัยสำหรับการเขียนโปรแกรม API Runtime สำหรับ CUDA GPU
- Cupla: เรียกใช้ CUDA/C ++ API ใน OpenMPA, เธรด, TBB ... ผ่าน Alpaka
- C ++ React: ไลบรารีการเขียนโปรแกรมปฏิกิริยาสำหรับ C ++ 11
- FibertaskingLib: ไลบรารีมัลติเธรดแบบใช้งานที่รองรับแผนภูมิงานที่มีการพึ่งพาโดยพลการ
- HPX: ระบบรันไทม์ C ++ สากลสำหรับแอปพลิเคชันแบบกระจายแบบขนานทุกขนาด
- Intel Games Task Task Scheduler: กรอบการจัดตารางงานที่ออกแบบมาสำหรับความต้องการของนักพัฒนาเกม
- Intel Parallel STL: การใช้งาน Intel ของ C ++ 17 STL สำหรับ C ++ 11 และใหม่กว่า
- Intel TBB: โมดูลการสร้างเธรด Intel
- ทางแยก: ไลบรารี C ++ สำหรับโครงสร้างข้อมูลพร้อมกัน
- Kokkos: รูปแบบการเขียนโปรแกรมแบบพกพาสำหรับการทำงานแบบขนานและสิ่งที่เป็นนามธรรมของหน่วยความจำ
- libcds: ไลบรารี C ++ สำหรับโครงสร้างข้อมูลแบบขนาน
- LIBCLSPH: ไลบรารีการจำลอง SPH ของ Fluid ที่ใช้ GPU ที่ใช้ GPU
- libmill: แนะนำโครงสร้างการพร้อมกันใน C.
- LibDispatch: Grand Central Dispatch (GCD) ที่พัฒนาโดย Apple เป็นเทคโนโลยีขนานงานตามรูปแบบสระว่ายน้ำ ไลบรารี libdispatch ให้การใช้งานบริการ GCD
- libmill: แนะนำการเกิดขึ้นพร้อมกันแบบ go-style ใน C.
- Marl: Marl เป็นตารางงานสำหรับเธรดผสม/เส้นใยที่เขียนใน C ++ 11
- Modernngpu: Modernngpu เป็นไลบรารีการผลิตสำหรับการคำนวณทั่วไปของ GPU มันมีไฟล์ส่วนหัว C ++ ที่เขียนขึ้นสำหรับ CUDA เท่านั้น ค่าที่ไม่ซ้ำกันของไลบรารีนี้อยู่ในช่วงเริ่มต้นการเร่งความเร็วที่ใช้ในการแก้ปัญหาคู่ขนานที่ผิดปกติ
- NCCL: การปรับให้เหมาะสมที่สุดสำหรับการสื่อสารแบบหลาย GPU แบบรวม
- OpenCL: Open Standard สำหรับระบบที่แตกต่างกันซึ่งตั้งโปรแกรมไว้ในแบบขนาน
- OpenMP: OpenMP API
- Sobjectizer: เฟรมเวิร์ก C ++ ที่ค่อนข้างเล็กซึ่งใช้นักแสดงเผยแพร่โหมด Subscribe และ CSP
- ควอนตัม: กรอบการทำงานร่วมกัน C ++ ที่ทรงพลังสร้างขึ้นในระดับสูงสุดของ Boost :: Coroutines2
- Raftlib: Library Raftlib C ++ ใช้การทำงานพร้อมกันของสตรีม/ข้อมูลผ่านตัวดำเนินการ C ++ ที่มีลักษณะคล้าย iostream
- ReaderWriterQueue: C ++ ผู้ผลิตเดี่ยวที่รวดเร็วและคิวฟรีล็อคผู้บริโภคเดี่ยว
- STDGPU: โครงสร้างข้อมูล STL ที่มีประสิทธิภาพบน GPU
- แรงขับ: ไลบรารีอัลกอริทึมแบบขนานคล้ายกับไลบรารีเทมเพลตมาตรฐาน C ++
- Transwarp: ไลบรารี C ++ สำหรับงานพร้อมกันของงานเฉพาะไฟล์ส่วนหัว
- VEXCL: C ++ Expression Expression Template Library สำหรับ OpenCL/CUDA
- ควอนตัม: กรอบการทำงานร่วมกัน C ++ ที่ทรงพลังสร้างขึ้นในระดับสูงสุดของ Boost :: Coroutines2
- Stapls: C ++ เฟรมเวิร์กการเขียนโปรแกรมแบบขนานที่ออกแบบมาเพื่อทำงานกับคอมพิวเตอร์ที่ใช้ร่วมกันและกระจายคอมพิวเตอร์ขนาน
การกำหนดค่า
ไฟล์กำหนดค่าไฟล์ ini
Inih: ตัวแยกวิเคราะห์ไฟล์. ini ที่เรียบง่ายในภาษา C ซึ่งเหมาะสำหรับระบบฝังตัว
Inih: IniH เวอร์ชัน C ++ เฉพาะไฟล์ส่วนหัวเท่านั้น
Inparser: ตัวแยกวิเคราะห์ไฟล์ INI
libconfig: ไลบรารี C และ C ++ ที่ใช้ในการจัดการไฟล์การกำหนดค่าที่มีโครงสร้าง
libconfuse: ไลบรารีการแยกวิเคราะห์ไฟล์การกำหนดค่าขนาดเล็กของ C
SimpleIni: ไลบรารี C ++ ข้ามแพลตฟอร์มที่ให้ API อย่างง่ายสำหรับการอ่านและเขียนไฟล์การกำหนดค่า INI
Toml ++: Toml Parser และ Stringer เหมาะสำหรับ C ++ 17 และใหม่กว่าด้วยไฟล์ส่วนหัวเท่านั้น
คอนเทนเนอร์
- C ++ B-Tree: ไลบรารีเทมเพลตที่ใช้คอนเทนเนอร์หน่วยความจำคำสั่งตามโครงสร้างข้อมูล B-Tree
- อาณานิคม: ภาชนะบรรจุ "กระเป๋า" ที่ไม่ได้เรียงลำดับซึ่งทำงานได้ดีกว่าภาชนะมาตรฐานเมื่อได้รับการดัดแปลงสูง ในขณะเดียวกันก็สามารถรักษาตัวชี้ถาวรให้กับองค์ประกอบที่ไม่ได้รับการดูแลโดยไม่คำนึงถึงการแทรกหรือลบ
- Dynamic_bitset: C ++ 17 Dynamic Bitset Collection เฉพาะไฟล์ส่วนหัวเท่านั้น
- ฟอเรสต์: ใช้ไลบรารีเทมเพลตสำหรับ AVL, การค้นหาแบบไบนารี, KD และ Quadtree
- HASHMAPS: การใช้อัลกอริทึมการใช้งานแบบเปิดที่อยู่ใน C ++
- แผนที่ Hopscotch: ใช้อัลกอริทึม Hopscotch Hash Hash เพื่อใช้การแมปแฮชอย่างรวดเร็วสำหรับการแก้ไขข้อขัดแย้งโดยมีไฟล์ส่วนหัวเท่านั้น
- LSHBox: กล่องเครื่องมือ C ++ สำหรับอัลกอริทึมที่มีความละเอียดอ่อนในเครื่อง (LSH) ให้อัลกอริทึม LSH ทั่วไปหลายประการและยังสามารถรองรับ Python และ Matlab
- PGM-INDEX: โครงสร้างข้อมูลที่สามารถค้นหาได้อย่างรวดเร็วนำไปสู่การค้นหาช่วงและอัปเดตอาร์เรย์รายการหลายร้อยล้านรายการโดยใช้ลำดับของการไล่ระดับสีมากกว่าที่ว่างเมื่อเทียบกับดัชนีดั้งเดิม
- PLF :: รายการ: std :: การใช้งานรายการซึ่งล้างการเย็บระยะเพื่อเปิดใช้งานโครงสร้างที่เป็นมิตรกับแคชส่งผลให้ประสิทธิภาพดีขึ้นอย่างมีนัยสำคัญ
- PLF :: Stack: std :: อะแดปเตอร์สแต็กคอนเทนเนอร์ซึ่งมีประสิทธิภาพที่ดีกว่าในบริบทสแต็กมากกว่าคอนเทนเนอร์มาตรฐานใด ๆ
- RING_SPAN LITE: การใช้งานที่เรียบง่ายของ RING_SPAN โดย Arthur O'Dwyer เช่นมุมมองบัฟเฟอร์แบบวงกลม
- Robin-Hood-Hashing: ตารางแฮชช่วยประหยัดหน่วยความจำสำหรับ C ++ 1 ตามอัลกอริทึมการแฮชของ Robin Hood
- Robin-Map: การทำแผนที่แฮชและชุดแฮชโดยใช้อัลกอริทึม Robin Hood Hash Hash
- Sparsepp: การทำแผนที่แฮชช่วยประหยัดหน่วยความจำสำหรับ C ++
การเข้ารหัสลับ
ห้องสมุดเข้ารหัสและการเข้ารหัส
- BCrypt: เครื่องมือเข้ารหัสไฟล์ข้ามแพลตฟอร์มที่สามารถพอร์ตไปยังระบบปฏิบัติการและโปรเซสเซอร์ที่รองรับทั้งหมด
- Beecrypt: ไลบรารีการเข้ารหัสแบบพกพาและเร็ว
- Botan: C ++ Library
- Crypto ++: ไลบรารี C ++ ฟรีสำหรับแผนการเข้ารหัส
- DIGESTPP: ไลบรารีข้อมูล Digest (HASH) ของ C ++ 11 มีเพียงไฟล์ส่วนหัวเท่านั้น
- GNUPG: การใช้งานมาตรฐาน OpenPGP ที่สมบูรณ์และฟรี
- GNUTLS: ไลบรารีการสื่อสารที่ปลอดภัยซึ่งใช้โปรโตคอล SSL, TLS และ DTLS
- libgcrypt: ไลบรารีรหัสผ่านสากลซึ่งเดิมใช้รหัส CNUPG
- Libressl: โปรโตคอล SSL/TLS ฟรีเป็นสาขาของ OpenSSL ในปี 2014
- Libsodium: ห้องสมุดเข้ารหัสที่ใช้ NACI, ดื้อรั้นและใช้งานง่าย
- Libhydrogen: ห้องสมุดเข้ารหัสที่มีน้ำหนักเบาปลอดภัยและใช้งานง่ายสำหรับสภาพแวดล้อมที่มีข้อ จำกัด
- libtomcrypt: ชุดเครื่องมือเข้ารหัสแบบโมดูลาร์แบบแยกส่วนและแบบพกพา
- Mbedtls: โอเพ่นซอร์ส, พกพา, ใช้งานง่าย, ใช้งานง่าย, อ่านง่าย, ยืดหยุ่น, ห้องสมุด SSL ที่ยืดหยุ่น, เดิมชื่อ PolarsSL
- ห้องสมุดการเข้ารหัสพื้นฐานของ Nettle
- OpenSSL: ไลบรารีการเข้ารหัสโอเพนซอร์สที่แข็งแกร่ง, เชิงพาณิชย์, ใช้งานได้อย่างสมบูรณ์
- Retter: คอลเลกชันของการเข้ารหัสที่เกี่ยวข้องกับฟังก์ชั่นแฮชรหัสผ่านเครื่องมือห้องสมุดและวัสดุ
- S2N: การใช้งานโปรโตคอล TLS/SSL
- SHA1CollisionDetection: เครื่องมือไลบรารีและบรรทัดคำสั่งสำหรับตรวจจับความขัดแย้ง SHA-1 ในไฟล์
- TINK: ไลบรารีหลายภาษาข้ามแพลตฟอร์มที่ให้ความปลอดภัยใช้งานง่ายและยากต่อการใช้ APIs การเข้ารหัส
- AES เล็ก ๆ ใน C: C ขนาดเล็กและขนาดกลางพกพา AES128/192/256
- Themis: ไลบรารีการเข้ารหัสเพื่อความปลอดภัยของข้อมูลที่ไม่เจ็บปวดให้การเข้ารหัสแบบสมมาตรและไม่สมมาตรสำหรับแพลตฟอร์มมือถือและเซิร์ฟเวอร์ซ็อกเก็ตที่ปลอดภัยพร้อมความลับไปข้างหน้า
CSV
ไลบรารีสำหรับการแยกวิเคราะห์ค่าเครื่องหมายจุลภาคแบบคั่น (CSV) ไฟล์
- CSV2: ตัวแยกวิเคราะห์ CSV ที่รวดเร็วสำหรับ C ++ ที่ทันสมัย
- Fast C ++ CSV Parser: ไลบรารีขนาดเล็กที่ใช้งานง่ายและรวดเร็วสำหรับการอ่านไฟล์ CSV รวมถึงไฟล์ส่วนหัวเท่านั้น
- ตัวแยกวิเคราะห์ CSV ของ Vince: เร็ว, สแตนด์อโลน, สตรีม C ++ 17 ตัวแยกวิเคราะห์ CSV พร้อมการแปลงประเภทเสริมและสถิติ
ฐานข้อมูล
ฐานข้อมูลเซิร์ฟเวอร์ SQL ไดรเวอร์และเครื่องมือ ODBC
- Hiberlite: C ++ การแมปความสัมพันธ์ Object Object สำหรับ SQLite3
- Hiredis: ไลบรารีไคลเอนต์ C ที่ง่ายมากสำหรับฐานข้อมูล Redis
- LevelDB: คีย์ค่าที่เก็บค่าคีย์ที่เขียนโดย Google ที่ให้การแมปที่สั่งซื้อจากคีย์อักขระไปยังค่าสตริง
- LMDB: ที่เก็บค่าคีย์-ค่าฝังตัวที่สอดคล้องกับองค์ประกอบพื้นฐานสี่ประการของฐานข้อมูล
- LMDB ++: C ++ 11 encapsulator สำหรับฐานข้อมูลฝังตัว LMDB
- MongoDB C ไดรเวอร์: ไลบรารีไคลเอนต์ MongoDB ของ C
- ไดรเวอร์ MongoDB C ++: ไดรเวอร์ C ++ สำหรับ MongDB
- MongoDB Libbson: ห้องสมุดยูทิลิตี้ BSON
- MySQL ++: A C ++ Encapsulator ที่ห่อหุ้ม C API ของ MySQL
- NanodBC: Wrapper C ++ ขนาดเล็กสำหรับ C ODBC API ดั้งเดิม
- ODB: โอเพ่นซอร์สของ C ++, Cross-Platform และ Cross-Database Object Relational Mapping (ORM)
- REDIS3M: HireDis encapsulator โดยใช้อินเตอร์เฟส C ++ ที่สะอาด, แท็กรองรับและรูปแบบสำเร็จรูป
- ROCKSDB: การจัดเก็บค่าคีย์แบบฝังอย่างรวดเร็วจาก Facebook
- SIMDB: ประสิทธิภาพสูง, หน่วยความจำที่ใช้ร่วมกัน, ฟรีล็อค, ข้ามแพลตฟอร์ม, ไฟล์เดียว, การพึ่งพาน้อยที่สุด C ++ 11 ที่เก็บค่าคีย์-ค่า
- SOCI: ฐานข้อมูล Abstraction ของ C ++
- SQLITE: ฐานข้อมูลเชิงสัมพันธ์ที่ฝังอย่างสมบูรณ์และทำงานได้อย่างสมบูรณ์โดยมีเพียงไม่กี่ร้อย KBs ที่สามารถรวมอยู่ในโครงการของคุณได้อย่างถูกต้อง
- SQLITEC ++: SQLITEC ++ (SQLITECPP) เป็น wrapper C ++ SQLite3 Wrapper ที่ฉลาดและใช้งานง่าย
- SQLITE_MODERN_CPP: Wrapper C ++ 14 ของไลบรารี SQLite, ไฟล์ส่วนหัวเท่านั้น
- SQLITE_ORM: SQLITE ORM LIGHTWEIGHT LIBRARY สำหรับ C ++ ที่ทันสมัยโดยมีไฟล์ส่วนหัวเท่านั้น
- SQLPP11: ภาษาเฉพาะแบบฝังตัวที่ปลอดภัยสำหรับโดเมนสำหรับการสืบค้น SQL และผลลัพธ์ที่ให้ผลใน C ++
- TiledB: DBMs หลายมิติหนาแน่นและเบาบาง
- Unqlite: เอ็นจิ้น NOSQL แบบสแตนด์อโลนแบบสแตนด์อโลนไม่มีเซิร์ฟเวอร์
- UPSCALEDB: ร้านค้าคีย์-ค่า "พิมพ์" ฝังตัวพร้อมอินเทอร์เฟซแบบสอบถามในตัว
การดีบัก
การดีบักไลบรารีหน่วยความจำและการตรวจจับการรั่วไหลของทรัพยากรการทดสอบหน่วย
- Backward-CPP: เครื่องพิมพ์แทร็กสแต็กที่สวยงามของ C ++
- เกณฑ์มาตรฐาน: ห้องสมุดรองรับมาตรฐานขนาดเล็กที่จัดทำโดย Google
- boost.test: Boost Test Library
- ตรวจสอบ: กรอบการทดสอบหน่วยของ C
- Doctest: กรอบการทดสอบที่เบาที่สุดสำหรับไฟล์ส่วนหัว C ++ เดียว
- Catch: เฟรมเวิร์กดั้งเดิมที่มีสไตล์มาก C ++ ที่มีเฉพาะไฟล์ส่วนหัวสำหรับการทดสอบหน่วยการพัฒนาที่ขับเคลื่อนด้วยการทดสอบและการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม
- Catch2: เฟรมเวิร์กดั้งเดิมที่มีสไตล์มาก C ++ ที่มีเฉพาะไฟล์ส่วนหัวสำหรับการทดสอบหน่วยการพัฒนาที่ขับเคลื่อนด้วยการทดสอบและการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม
- CELERO: C ++ เฟรมเวิร์กการเปรียบเทียบ
- CPPUTEST: การทดสอบหน่วย C/C ++ และกรอบการเยาะเย้ย
- น่ารัก: การทดสอบหน่วย C ++ ง่ายขึ้น
- CMOCKA: กรอบการทดสอบหน่วย C ที่รองรับวัตถุจำลอง
- CPPUNIT: กรอบการทดสอบ C ++ พอร์ตโดย Junit
- CTEST: ไดรเวอร์การทดสอบ CMAKE
- DBG-MACRO: C ++ DBG (…) มาโคร
- Deleaker: เครื่องมือสำหรับการตรวจสอบการรั่วไหลของทรัพยากรรวมถึงหน่วยความจำ, GDI และการจัดการการรั่วไหล
- FFF: สร้าง microframework สำหรับฟังก์ชั่น pseudo-C
- Google Mock: ไลบรารีสำหรับการเขียนและการใช้คลาส C ++ Mock
- Google Test: กรอบการทดสอบ C ++ ของ Google
- IG-DEBUGHEAP: กองการดีบักหลายแพลตฟอร์มสำหรับการติดตามข้อผิดพลาดของหน่วยความจำ
- libtap: เขียนการทดสอบในภาษา C
- MEMTRACK: ใช้เพื่อติดตามการจัดสรรหน่วยความจำใน C ++
- MicroProfile: Cross-Platform Network View Analyzer
- MINUNIT: กรอบการทดสอบหน่วยที่เล็กที่สุดที่เขียนใน C รวมอยู่ในไฟล์ส่วนหัวเดียว
- Mockator: ปลั๊กอิน Eclipse CDT สำหรับการเย็บและการเย้ยหยัน C ++
- Nanotimer: คลาสจับเวลาที่เรียบง่าย, ค่าใช้จ่ายต่ำ, ข้ามแพลตฟอร์มสำหรับการเปรียบเทียบ
- Nonius: C ++ Microbenchmarking Framework
- Remotery: เครื่องวิเคราะห์ไฟล์ C เดียวสำหรับการดูเว็บ
- Unittest ++: กรอบการทดสอบหน่วย C ++ ที่มีน้ำหนักเบา
- Unity: การทดสอบหน่วยอย่างง่ายสำหรับ C
- utest.h: กรอบการทดสอบไฟล์ส่วนหัวเดียวสำหรับ C และ C ++
- μt: C ++ 20 ไฟล์หัวเดี่ยว/โมดูลเดี่ยว, μ (ไมโคร)/เฟรมเวิร์กการทดสอบหน่วยโดยไม่มีแมโคร
- VLD: Microsoft Leakage Meter, ระบบตรวจจับการรั่วไหลของหน่วยความจำฟรีที่แข็งแกร่งและโอเพ่นซอร์สสำหรับ Visual C ++
แบบอักษร
ไลบรารีสำหรับการแยกวิเคราะห์และประมวลผลไฟล์แบบอักษร
- FontConfig: การกำหนดค่าแบบอักษรและไลบรารีที่กำหนดเอง
- FreeType: ห้องสมุดซอฟต์แวร์ฟรีที่มีอยู่สำหรับการแสดงผลแบบอักษร
- OTFCC: ไลบรารีและยูทิลิตี้สำหรับการแยกวิเคราะห์และเขียนไฟล์แบบอักษร Opentype
เครื่องยนต์เกม
- กรด: เครื่องยนต์เกม C ++ 17 Vulkan
- Allegro: ห้องสมุดข้ามแพลตฟอร์มส่วนใหญ่ใช้สำหรับวิดีโอเกมและการเขียนโปรแกรมมัลติมีเดีย
- COCOS2D-X: กรอบการทำงานหลายแพลตฟอร์มสำหรับการสร้างเกม 2D, หนังสือแบบโต้ตอบ, การสาธิตและแอปพลิเคชันกราฟิกอื่น ๆ
- Corange: เครื่องยนต์เกมที่เขียนด้วย PURE C, SDL และ OpenGL
- Crown: Crown เป็นเครื่องมือเกมที่ขับเคลื่อนด้วยข้อมูลสากลที่เขียนตั้งแต่เริ่มต้นโดยใช้ Orthodox C ++ พร้อมแนวคิดการออกแบบที่เรียบง่ายและเน้นข้อมูล
- Delta3d: แพลตฟอร์มการจำลองที่แข็งแกร่ง
- ENTT: การปะทะกันระหว่างเกมและ C ++ ที่ทันสมัย
- GamePlay: เฟรมเวิร์กเกม C ++ ข้ามแพลตฟอร์มสำหรับการสร้างเกมมือถือ 2D/3D และเดสก์ท็อป
- Godot: เอ็นจิ้นเกมที่ได้รับใบอนุญาต MIT ที่ใช้งานได้อย่างสมบูรณ์
- Grit: โครงการชุมชนสำหรับการสร้างเอ็นจิ้นเกมฟรีที่เปิดใช้งานเกม Open World 3D
- Halley: เอ็นจิ้นเกมที่มีน้ำหนักเบาเขียนใน C ++ 14 ด้วยระบบองค์ประกอบทางกายภาพ "ของจริง"
- Klayge: เครื่องยนต์เกมโอเพนซอร์สแบบข้ามแพลตฟอร์มตามสถาปัตยกรรมปลั๊กอิน
- NCINE: เอ็นจิ้นเกม 2D แบบข้ามแพลตฟอร์มที่มุ่งเน้นไปที่ประสิทธิภาพเขียนใน C ++ 11 และคุณยังสามารถเลือกที่จะเขียนสคริปต์โดยใช้ LUA
- Openxray: เอ็นจิ้น X-ray ที่ได้รับการดัดแปลงชุมชนที่ใช้ในซีรีย์เกม stalker
- Oxygine: เครื่องยนต์เกม Cross-Platform 2D C ++
- PANDA3D: Game Engine, กรอบการทำงานสำหรับการเรนเดอร์ 3D และการพัฒนาเกมของโปรแกรม Python และ C ++
- PixelGameEngine: การเปิดตัวอย่างเป็นทางการของ OlcpixelgameEngine เครื่องมือสำหรับวิดีโอและโครงการ YouTube สำหรับ JavidX9
- Polycode: เฟรมเวิร์กโอเพ่นซอร์สที่ใช้ใน C ++ (ผูกไว้กับ LUA) สำหรับการสร้างเกม
- Raylib: ห้องสมุดที่เรียบง่ายใช้งานง่ายเพื่อเพลิดเพลินกับความสนุกของการเขียนโปรแกรมวิดีโอเกม
- ฤดูใบไม้ผลิ: เอ็นจิ้นเกม RTS ที่ทรงพลังฟรีข้ามแพลตฟอร์ม
- Torque2D: เครื่องยนต์โอเพนซอร์ส Cross-Platform C ++ ที่สร้างขึ้นสำหรับการพัฒนาเกม 2D
- Torque3D: เครื่องยนต์โอเพนซอร์ส C ++ ที่สร้างขึ้นสำหรับการพัฒนาเกม 3 มิติ
- ของเล่นเอ็นจิ้น: ของเล่นเป็นเครื่องยนต์เกมที่มีน้ำหนักเบาและเป็นโมดูล C ++ และให้สำนวน C ++ ที่เรียบง่ายและแสดงออกได้อย่างรวดเร็วเพื่อทำซ้ำการออกแบบเกม 2D และ 3D ที่ใช้งานได้อย่างสมบูรณ์
- URHO3D: เอ็นจิ้นเกมเกมเกมฟรีน้ำหนักเบา, น้ำหนักเบา, ข้ามแพลตฟอร์ม 2D และ 3D ที่ใช้โดย C ++ ได้รับแรงบันดาลใจอย่างมากจาก Ogre และ Horde3D
ส่วนต่อประสานผู้ใช้กราฟิก
ส่วนต่อประสานผู้ใช้กราฟิก
- Boden: Native, Mobile, Cross-Platform GUI Framework
- Cegui: ห้องสมุด GUI แบบข้ามแพลตฟอร์มที่ยืดหยุ่น
- องค์ประกอบ: Lightweight, ละเอียด, ความละเอียด, ห้องสมุด Modular GUI ที่เป็นอิสระ
- FLTK: FAST, Cross-Platform น้ำหนักเบา C ++ GUI Toolkit
- GACUI: อินเทอร์เฟซผู้ใช้ C ++ ที่เร่งด้วย GPU พร้อมเครื่องมือพัฒนา WYSIWYG รองรับ XML และมีความสามารถในการเชื่อมโยงข้อมูลและความสามารถ MVVM ในตัว
- GTK+: ชุดเครื่องมือหลายแพลตฟอร์มสำหรับการสร้างส่วนต่อประสานผู้ใช้กราฟิก
- GTKMM: อินเทอร์เฟซ C ++ อย่างเป็นทางการสำหรับห้องสมุด GUI ยอดนิยม GTK+
- Imgui: อินเทอร์เฟซกราฟิกกราฟิกแบบเรียลไทม์ที่มีการพึ่งพาน้อยที่สุด
- Imstot: การควบคุมการวาดรูปแบบเรียลไทม์ของ Imgui
- IUP: ชุดเครื่องมือหลายแพลตฟอร์มสำหรับการสร้างส่วนต่อประสานผู้ใช้กราฟิก
- Libui: ห้องสมุด GUI แบบพกพาที่เรียบง่าย (แต่ไม่ยืดหยุ่น) ใน C โดยใช้เทคโนโลยี GUI พื้นเมืองสำหรับทุกแพลตฟอร์มที่รองรับ
- Mygui: GUI ที่รวดเร็วยืดหยุ่นและเรียบง่าย
- นานา: นานาเป็นห้องสมุดข้ามแพลตฟอร์มสำหรับการเขียนโปรแกรม GUI สไตล์ C ++ ที่ทันสมัย
- Nanogui: ไลบรารีควบคุมแบบมินิมัลลิสต์ข้ามแพลตฟอร์มสำหรับ OpenGL 3.x และใหม่กว่า
- Nuklear: ANSI C GUI Library สำหรับไฟล์ส่วนหัวเดียว
- QCustomplot: การควบคุมการวาดภาพ QT โดยไม่ต้องพึ่งพามากขึ้น
- QWT: การควบคุม QT สำหรับผู้ใช้และแอพพลิเคชั่นเทคโนโลยี
- QWTPLOT3D: ไลบรารีการเขียนโปรแกรม C ++ ที่อุดมไปด้วยคุณสมบัติตาม QT/OpenGL ซึ่งเป็นหลักให้กลุ่มควบคุม 3D
- RMLUI: ไลบรารีส่วนต่อประสานผู้ใช้ HTML/CSS ที่พัฒนาขึ้นสาขาของ Librocket
- Sciter: Sciter เป็นเครื่องยนต์ HTML/CSS/Scripting Language ที่ฝังได้ซึ่งออกแบบมาเพื่อใช้ในชั้น UI ของแอพพลิเคชั่นเดสก์ท็อปที่ทันสมัย
- Library WxWidgets C ++ ซึ่งช่วยให้นักพัฒนาสามารถใช้ฐานรหัสเพื่อสร้างแอปพลิเคชันสำหรับแม่ม่าย, Mac OS X, Linux และแพลตฟอร์มอื่น ๆ
- Yue: สร้างไลบรารีสำหรับแอปพลิเคชัน GUI ข้ามแพลตฟอร์มดั้งเดิม
กราฟิก
- ASSIMP: Library Import Open Asset Import (ASSIMP) เป็นไลบรารีการนำเข้าแบบจำลองข้ามแพลตฟอร์ม 3D ที่ออกแบบมาเพื่อให้ API ทั่วไปสำหรับรูปแบบไฟล์สินทรัพย์ 3 มิติที่แตกต่างกัน
- BGFX: ไลบรารีการแสดงผลข้ามแพลตฟอร์ม
- Blend2D: เครื่องยนต์กราฟิกเวกเตอร์ 2D ขับเคลื่อนโดยคอมไพเลอร์ JIT
- BS :: Framework: ห้องสมุด C ++ 14 ที่ทันสมัยสำหรับการพัฒนาแอปพลิเคชันกราฟิกแบบเรียลไทม์
- ไคโร: ไลบรารีกราฟิก 2D ที่รองรับอุปกรณ์เอาต์พุตหลายตัว
- C-Turtle: คลังกราฟิกเต่า C ++ 11 ที่ทำหน้าที่เป็น wrapper CLMG โดยมีไฟล์ส่วนหัวเท่านั้น
- เครื่องยนต์ขยัน: ห้องสมุดกราฟิก 3 มิติที่ทันสมัยข้ามแพลตฟอร์มระดับต่ำ
- DirectXTK: คอลเลกชันของคลาสช่วยเหลือที่ใช้ในการเขียนรหัส DirectX 11.x ใน C ++
- GLFW: ไลบรารีการประมวลผล OpenGL แบบข้ามแพลตฟอร์มง่าย
- HereBedragons: ฉาก 3 มิติพื้นฐานที่ใช้โดยใช้เครื่องยนต์เฟรมเวิร์กหรือ APIs ต่างๆ
- Horde3d การเรนเดอร์ 3 มิติขนาดเล็กและเอ็นจิ้นแอนิเมชั่น
- ไอออน: คอลเลกชันขนาดเล็กและมีประสิทธิภาพของไลบรารีสำหรับการสร้างไคลเอนต์ข้ามแพลตฟอร์มหรือแอปพลิเคชันเซิร์ฟเวอร์โดยใช้กราฟิก 3D
- Irrlicht: เครื่องยนต์ 3D แบบเรียลไทม์ประสิทธิภาพสูงที่เขียนใน C ++
- Libigl: ไลบรารีการประมวลผลเรขาคณิต C ++ อย่างง่าย
- LLGL: ไลบรารีกราฟิกระดับต่ำ (LLGL) เป็นชั้นบาง ๆ ของนามธรรมสำหรับ API กราฟิกที่ทันสมัย
- Magnum: มิดเดิลแวร์กราฟิกที่มีน้ำหนักเบาและแบบแยกส่วน C ++ 11/C ++ 14 สำหรับการเล่นเกมและการสร้างภาพข้อมูล
- NANOVG: ไลบรารีกราฟิกเวกเตอร์ 2D ต่อต้านการใช้งานที่อยู่ด้านบนของ OpenGL สำหรับ UI และการสร้างภาพข้อมูล
- Ogre 3D: เอ็นจิ้นการเรนเดอร์ 3 มิติแบบเรียลไทม์, แบบเรียลไทม์, ยืดหยุ่น (ไม่ใช่เอ็นจิ้นเกม) ที่เขียนใน C ++
- OpenScenegraph: OpenScenegraph Toolkit พร้อมประสิทธิภาพสูง
- OpenSubdiv: ห้องสมุดของ Pixar สำหรับการประเมินและการแสดงผลพื้นผิวที่แบ่งส่วนบน CPU และ GPU
- OpenVDB: ไลบรารีและเครื่องมือสำหรับการจัดเก็บการแก้ไขและการแสดงผลฐานข้อมูลปริมาณ
- PANDA3D: กรอบการทำงานสำหรับการเรนเดอร์ 3 มิติและการพัฒนาเกมเขียนใน Python และ C ++
- Partio: ไลบรารีสำหรับการประมวลผลข้อมูลอนุภาครองรับรูปแบบไฟล์ทั่วไปส่วนใหญ่
- Skia ห้องสมุดกราฟิก 2D ที่สมบูรณ์สำหรับการวาดข้อความกราฟิกและรูปภาพ
- Tinyspline: ห้องสมุด ANSI C ขนาดเล็ก แต่ทรงพลังสำหรับความแตกต่างการเปลี่ยนแปลงและการสืบค้น nurbs โดยพลการฟังก์ชั่น B-spline และเส้นโค้ง
- การแสดงผลข้ามแพลตฟอร์ม urho3D และเครื่องมือเกม
- Yocto/GL: ไลบรารี C ++ ขนาดเล็กที่ใช้กราฟิกทางกายภาพสำหรับข้อมูลที่ขับเคลื่อนด้วยข้อมูล
การประมวลผลภาพ
- boost.gil: ห้องสมุดอิมเมจสากล
- CIMG: ชุดเครื่องมือโอเพ่นซอร์ส C ++ ขนาดเล็กสำหรับการประมวลผลภาพ
- CXIMAGE: ไลบรารีการประมวลผลภาพและการแปลงสำหรับการโหลดการบันทึกการแสดงและการแปลง
- DLIB: การเรียนรู้ของเครื่อง C ++ 11, วิสัยทัศน์คอมพิวเตอร์, การเพิ่มประสิทธิภาพเชิงตัวเลขและชุดเครื่องมือการเรียนรู้ลึก
- FreeImage: ไลบรารีโอเพ่นซอร์สที่รองรับรูปแบบภาพทั่วไปและรูปแบบอื่น ๆ ที่จำเป็นสำหรับแอปพลิเคชันมัลติมีเดียในขณะนี้
- GD: ห้องสมุดกราฟิก GD ที่มีชื่อเสียงด้านการโหลดกราฟิก/การทำงานและการสร้างภาพขนาดย่อใน PHP
- DCMTK: DICOM Toolkit
- GDCM: Grassroots DICOM 库。
- ITK: 跨平台的开源图像分析系统。
- Leptonica: Leptonica是一个包含软件的开源库,其广泛应用于图像处理和图形分析应用程序。
- libfacedetection: 用于图像中人脸检测的开源库,其人脸检测的速度能达到1500FPS。
- libjpeg-turbo: 使用SIMD指令来加速基线JPEG编码和解码的JPEG图像编解码器。
- libvips: 具有低内存需求的快速图像处理库。
- Magick++: ImageMagick程序的C++接口。
- MagickWnd: ImageMagick程序的C++接口。
- OpenCV: 开源计算机视觉类库。
- OpenEXR: 具有高动态范围成像的跨平台库。
- OpenImageIO: 强大的图像和纹理处理库,支持多种常见的有损和RAW格式。
- Simd: 使用SIMD的C++图像处理库: SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX(Altivec)和VSX(Power7),NEON for ARM。
- stb-image: STB单个头文件的图像加载库。
- tesseract-ocr: OCR引擎。
- TinyEXIF: 用于JPEG的微型ISO兼容的C++ EXIF和XMP解析库。
- Video++: C++ 14高性能的视频和图像处理库。
- VIGRA: 用于图像分析通用C++计算机视觉库。
- VTK: 用于3D计算机图形学,图像处理和可视化的开源免费软件系统。
国际化
- gettext: GNU `gettext'。
- IBM ICU: 提供Unicode 和全球化支持的C、C++ 和Java库。
- libiconv: 用于不同字符编码之间的编码转换库。
- utf8.h: C和C++的单个头文件的utf8字符串函数。
- utf8proc: 干净的C库,用于处理UTF-8 Unicode数据。
进程间通信
- Apache Thrift: 高效的跨语言IPC/RPC,可在C++、Java、Python、PHP、C#和许多其它语言之间运行。最初是由Facebook开发。
- Cap'n Proto: 快速的数据交换格式和基于功能的RPC系统。
- eCAL: 发布/订阅,客户端/服务器,C++/Python/C#,各种消息协议(protobuf, capnproto ..)。
- gRPC: 高性能、开源、通用的RPC框架。
- Ice: 全面的RPC框架,支持C++、C#、Java、JavaScript、Python等。
- libjson-rpc-cpp: 用于C++服务器和客户端的JSON-RPC框架。
- nanomsg: 好几个“可扩展协议”的简单高性能实现。
- nng: nanomsg的下一代,轻量级、无代理消息的传递库。
- rpclib: 现代C++的msgpack-RPC服务器和客户端库。
- simple-rpc-cpp: C / C++函数的简单RPC封装生成器。
- WAMP: 提供RPC和发布/订阅消息传递模式。(各种实现,各种语言)
- xmlrpc-c: 基于XML和HTTP的轻量级RPC库。
Json
- Boost.PropertyTree: 属性树解析器/生成器,可用于解析XML / JSON / INI / Info文件。
- cJSON: ANSI C的超轻量级JSON解析器。
- frozen: C/C++的Json解析生成器。
- Jansson: 进行编解码和处理Json数据的C语言库。
- jbson: C++14中构建和迭代BSON data和Json 文档的库。
- JeayeSON: 非常健全的C++ JSON库,只包含头文件。
- Jsmn: C语言中的简约JSON解析器。
- json: 用于现代C++的JSON。
- JSON++: C++的JSON 解析器。
- json.h: 在C和C++中解析JSON的简单的单头文件/单源文件的解决方案。
- json-c: C中的JSON实现。
- jsoncons: 使用JSONPointer、JSONPatch、JSONPath和JMESPath的JSON和类似JSON二进制格式的C++库,只有头文件。
- JsonCpp: 可与JSON交互的C++库。
- json-parser: 用可移植的ANSI C编写的JSON解析器,占用内存非常少。
- json11: 一个迷你的C++11 JSON库。
- json-voorhees: C++的JSON库。支持C++ 11,无依赖关系,快速且对开发人员友好。
- jute: 非常简单的C++ JSON解析器。
- ibjson: C语言中的JSON解析和打印库,很容易和任何模型集成。 -
- libjson: 轻量级的JSON库。
- LIBUCL: 通用配置库解析器。
- parson: 用C编写的轻量级的JSON库。
- PicoJSON: C++中JSON解析序列化,只包含头文件。
- qt-json: 用于JSON数据和QVariant层次间的相互解析的简单类。
- QJson: 将JSON数据映射到QVariant对象的基于Qt的库。
- RapidJSON: 用于C++的快速JSON 解析生成器,包含SAX和DOM两种风格的API。
- sajson: 用于C++ 11的轻量级、高性能的JSON解析器。
- simdjson: 极快的JSON库,可以千兆字节每秒的速度解析JSON。
- taoJSON: 零依赖的C++JSON库,只包含头文件。
- ujson: µjson是一个小型、C++ 11、UTF-8、JSON的库。
- YAJL: C语言中快速流JSON解析库。
บันทึก
- Blackhole: 基于属性的日志框架,旨在快速、模块化和高度可定制。
- Boost.Log: 设计非常模块化,并且具有扩展性。
- Easylogging++: 适用于C++ 11(或更高版本)应用程序的超轻量级、高性能的日志库。
- G3log: 具有动态接收模块的异步记录器。
- glog: Google日志模块的C++实现。
- Log4cpp: C++类库,用于灵活地添加日志到文件,系统日志,IDSA和其他地方。
- log4cplus: 易于使用的C++日志API,可提供对日志管理和配置的线程安全、灵活且任意粒度的控制。
- loguru: 轻量级的C++日志库。
- plog: C++可移植且简单的日志,少于1000行代码。
- reckless: C++低延迟、高吞吐量、异步的日志库。
- spdlog: 超级快的C++日志库,只包含头文件。
- templog: 小型、轻量级的C++ 库,可以添加日志到你的C++应用程序中。
- P7Baical: 开源、跨平台的库,用于在最小限度使用CPU和内存的情况下高速发送遥测和跟踪数据。
- Quill: 异步、跨平台、低时延的日志库。
机器学习
- Caffe: 快速的神经网络框架。
- CCV: 基于C /缓存/核心的计算机视觉库,现代计算机视觉库。
- darknet: 用C和CUDA编写的开源神经网络框架。
- Dlib: 现代C++ 11的机器学习、计算机视觉、数值优化和深度学习的工具包。
- Fido: 用于嵌入式电子和机器人技术的高度模块化的C++机器学习库。
- flashlight: 来自Facebook AI研究中心的快速、灵活的机器学习库,其完全用C++编写,基于ArrayFire张量库。
- libsvm: 支持向量机的简单、易用、高效的库。
- MeTA: 现代C++的数据科学工具包。
- Minerva: 快速、灵活的深度学习系统。
- mlpack: 可扩展的C++机器学习库。
- OpenCV: 开源计算机视觉库。
- Recommender: 使用协同过滤进行产品推荐/建议的C语言库。
- RNNLIB: RNNLIB是用于序列学习问题的递归神经网络库。
- SHOGUN: Shogun 机器学习工具。
- sofia-ml: 用于机器学习的快速增量算法套件。
- VLFeat: VLFeat开源库实现了流行的计算机视觉算法,这些算法专门用于图像理解以及局部特征提取和匹配。
- xgboost: 用于Python、R、Java、Scala、C++等的可扩展、便携式和分布式梯度增强(GBDT,GBRT或GBM)的库。在单机、Hadoop、Spark、Flink和DataFlow上运行。
คณิตศาสตร์
- Apophenia: 用于统计和科学计算的C库。
- Armadillo: 用于线性代数和科学计算的快速C++库。
- autodiff: 用于自动微分的现代、快速且富有表现力的C++库。
- blaze: 高性能的C++数学库,用于密集和稀疏算法。
- Boost.Multiprecision: 在C++中提供更高范围/精度的整数、有理数和浮点数类型,只包含头文件或者在GMP / MPFR / LibTomMath后端。
- ceres-solver: 来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题。
- CGAL: 高效,可靠的几何算法集合。
- cml: 用于游戏和图形的免费C++数学库。
- Dlib: 现代C++11的机器学习、计算机视觉、数值优化和深度学习工具包。
- Eigen: 高级C++模板头文件库,包括线性代数,矩阵,向量操作,数值解决和其他相关的算法。
- ExprTK: C++数学表达式工具包库(ExprTk)是一个易于使用、易于集成且非常高效的运行时数学表达式解析器和评估引擎。
- Geometric Tools: 用于数学、图形、图像分析和物理学领域计算的C++库。
- GLM: 只包含头文件的C++数学库,可与OpenGL的GLSL数学匹配并互操作。
- GMTL: 数学图形模板库是一组广泛实现基本图形的工具。
- GMP: 用于个高精度计算的C/C++库,处理有符号整数,有理数和浮点数。
- Klein: 快速、SIMD优化的C++ 17几何代数库,用于点、线和平面投影、相交、连接、刚体运动等。
- linalg.h: C++的单头文件、公共域、短向量数学库。
- MIRACL: 多精度整数和有理数算法加密库。
- muparser: muParser是用C++编写的可扩展、高性能的数学表达式解析库。
- LibTomMath: 完全用C编写的免费、开源、可移植的数论多精度整数库。
- linmath.h: 精益线性数学库,主要用于图形编程。
- lp_solve: 用于制定和解决线性编程问题的库。
- OpenBLAS: 基于GotoBLAS2 1.13 BSD版本的优化BLAS库。
- QuantLibv: 用于计量金融的免费/开源库。
- StatsLib: 统计分布函数的C++库,只包含头文件。
- SymEngine: 快速符号处理库,用C++重写了SymPy的核心。
- TinyExpr: 用于解析和评估字符串中的数学表达式的C库。
- Vc: C++的SIMD矢量类。
- Versor: (快速的)几何代数的通用C++库,包括欧几里得、投影,保角、时空等。
- Wykobi: 高效、健壮且易于使用的C++库,面向C++ 2D / 3D的计算几何例程。
- xtensor: 受NumPy语法启发的C++ 14库,用于使用多维数组表达式进行数值分析。
- universal: 只包含头文件的C++ 14库,实现任意假定算数。假定数值系统是一个锥形浮点,比IEEE浮点更有效。假定数使可复现的计算科学成为可能。
内存分配
- Boehm GC: C和C++的保守的垃圾回收器。
- C Smart Pointers: (GNU)C编程语言的智能指针。
- Hoard: 快速、可扩展和节约内存的Malloc,支持Linux、Windows和Mac。
- jemalloc: 通用的malloc(3)实现,强调避免存储碎片和可扩展的并发支持。
- memory: 兼容STL的C++内存分配器库。
- memory-allocators: 自定义内存分配器,可提高动态内存分配的性能。
- mimalloc: 具有出色性能的紧凑型通用分配器。
- tgc: 用~500 LOC编写的C语言微型垃圾回收器。
多媒体
- GStreamer: 构建媒体处理组件图形的库。
- libass: ASS / SSA字幕格式的便携式字幕渲染器。
- libass: 处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。
- LIVE555 Streaming Media: 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。
- libVLC: libVLC (VLC SDK)媒体框架。
- MediaInfoLib: 用于视频和音频文件中最相关的技术和标签数据的方便统一显示。
- QtAv: 基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。
- SDL: 简单直控媒体层。
- SFML: 快速,简单的多媒体库。
- TagLib: 用于读取和编辑几种流行音频格式的元数据的库。
网络
- ACE: C++面向对象网络编程工具包。
- Boost.Asio: 用于网络和底层I/O编程的跨平台的C++库。
- Boost.Beast: 在C++ 11中基于Boost.Asio构建的HTTP和WebSocket。
- Breep: 基于事件的高级C++ 14点对点库。
- C++ REST SDK: C++ REST SDK(以前称为Casablanca)。
- Restbed: C++ 11异步RESTful框架。
- Restinio: 只有头文件的C++ 14库,为您提供嵌入式HTTP / Websocket服务器。
- c-ares: 用于异步DNS请求的C库。
- cpp-httplib: 单文件的C++ 11 HTTP / HTTPS服务器库,只包含头文件。
- cpp-netlib: 高级网络编程的开源库集合。
- cpp-netlib/uri: C++的URI解析器/生成器库,与RFC 3986和RFC 3987兼容。
- cpr: 现代C++ HTTP请求库,具有简单但功能强大的接口。模仿Python Requests模块。
- curlcpp: CURL(libcurl)的面向对象C++封装器。
- DPDK: 用于快速打包处理的数据平面开发工具、库和驱动程序。
- Dyad.c: C的异步网络。
- ENet: 可靠的UDP网络库。
- evpp: 具有TCP / UDP / HTTP协议的C++高性能网络。
- H2O: 优化的HTTP服务器,支持HTTP / 1.x和HTTP / 2。它也可以用作库。
- HTTP Parser: C的http请求/响应解析器。
- KCP: 快速、可靠的ARQ协议,可帮助应用程序减少网络延迟。
- libcurl: 多协议文件传输库。
- libhttpserver: 用于创建嵌入式Rest HTTP服务器(以及更多)的C++库。
- Libmicrohttpd: GNU libmicrohttpd是一个小型C库,可以轻松地将HTTP服务器作为另一个应用程序的一部分运行。
- libpcap: 用于网络流量捕获的可移植C / C++库。
- libquic: 从Chromium的QUIC实现中提取的QUIC协议库。
- librdkafka: 用于C和C++的Apache Kafka客户端库。
- libwebsockets: 提供客户端和服务器库的轻量级纯C WebSocket实现。
- lwIP: 轻量级TCP / IP堆栈。
- Mongoose :非常轻量级的网络服务器。
- MQTT-C: 适用于嵌入式系统和类PC机的便携式MQTT C客户端。
- mTCP: 用于多核系统的高度可扩展的用户级TCP堆栈。
- Muduo: 用于Linux多线程服务器的C++非阻塞网络库。
- nghttp2: HTTP / 2 C库。
- Onion: C语言HTTP服务器库,其设计为轻量级,易使用。
- PF_RING™: 高速打包处理框架。
- PicoHTTPParser: 微小、原始、快速的HTTP请求/响应解析器。
- POCO: 用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。
- Proxygen: Facebook的C++ HTTP库集合,包括易于使用的HTTP服务器。
- RakNet: 为游戏开发人员提供的跨平台的开源C++网络引擎。
- restclient-cpp: 用于C++的简单REST客户端。它包装libcurl用于HTTP请求。
- Seasocks: 具有WebSockets支持的简单、小型的C++嵌入式Web服务器。
- Silicon: 高性能、面向中间件的C++ 14 http Web框架。
- tlse: 单个C文件的TLS 1.2 / 1.3实现,使用tomcrypt作为加密库。
- Tufão: 基于Qt构建的C++异步Web框架。
- uriparser: 严格符合RFC 3986的URI解析和处理库。
- uWebSockets: µWS是最轻量级、高效和可伸缩的WebSocket和HTTP服务器的实现之一。
- WAFer: 基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。为C程序员考虑了node.js。
- Wangle: 客户端/服务器应用程序框架,用于构建异步的、事件驱动的现代C++服务。
- wdt: 可嵌入式库(和命令行工具),旨在通过多个TCP路径尽可能快地在2个系统之间传输数据。
- WebSocket++: 基于C++/Boost Aiso的websocket 客户端/服务器库。
- PcapPlusPlus: 跨平台的C++网络嗅探以及数据包解析和构建的框架。
- ZeroMQ: 高速,模块化的异步通信库。
PDF
解析和处理PDF文档的库。
- libharu: 免费、跨平台、开源的软件库,用于生成PDF。
- litePDF: 创建和编辑PDF文档的库,它通过设备上下文使用GDI功能来绘制页面内容。
- MuPDF: 轻量级的PDF、XPS和电子书查看器。
- PoDoFo: 使用PDF文件格式的库。
- Poppler: 基于xpdf-3.0代码库的开源、多后端的PDF渲染库。
- Xpdf: Xpdf是一款免费的PDF查看器和工具包,包括文本提取器、图像转换器、HTML转换器等。
- DynaPDF: 易于使用的PDF生成库。
ฟิสิกส์
动力学仿真引擎
- Box2D: 2D的游戏物理引擎。
- Bullet: 3D的游戏物理引擎。
- Chipmunk: 快速、轻量级的2D游戏物理库。
- LiquidFun: 2D的游戏物理引擎。
- Newton Dynamics: 用于物理环境实时仿真的集成解决方案。
- ODE: 开放动力学引擎-开源,高性能库,模拟刚体动力学。
- ofxBox2d: Box2D开源框架包装器。
- PhysX: Nvidia开发的开源的实时物理引擎中间件SDK,作为Nvidia GameWorks软件套件的一部分。
- Project Chrono: 开源的多物理场仿真引擎。
- Quantum++: 现代的C++ 11量子计算库。
- Simbody: 高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。
- SOFA: SOFA是一个针对实时仿真的开源框架,其着重于医学仿真。
映射
- Better Enums: 映射的枚举类型(字符串、迭代)。单个头文件。
- clReflect: 使用clang的C++映射。
- CPFG: 用于反射、回调和脚本绑定的C++ 03库。
- CPP-Reflection: 使用clang的C++映射。
- Magic Enum: 只包含头文件的的C++ 17库,为枚举类型(字符串、迭代)提供静态映射,可与任何枚举类型一起使用,无需任何宏或样板代码。
- magic_get: 类似std: : tuple的方法,用于用户定义类型,无需任何宏或样板代码。
- meta: C++的非侵入性且无宏的运行时映射系统,只包含头文件。
- Nameof: 只包含头文件的的C++ 17库,提供名称宏和函数以获取变量、类型、函数、宏和枚举的简单名称。
- Ponder: C++11的映射库。
- RTTR: C++11的映射库。
- visit_struct: C++中用于结构域映射的微型库。
正则表达式
- CppVerbalExpressions: C++正则表达式专家。
- CTRE: 编译时PCRE(几乎)兼容的正则表达式匹配器。
- Hyperscan: Hyperscan是Intel的高性能、多种正则表达式匹配库,提供大量正则表达式(多达数万个)的同时匹配,通常在DPI库堆栈中使用。
- Oniguruma: 现代且灵活的正则表达式库,支持多种字符编码。
- PCRE: 受Perl中正则表达式功能启发的正则表达式C库。
- PIRE: Yandex的Perl不兼容正则表达式库,可以非常快(超过400 MB / s)。
- RE2: 使用自动机理论、通过有限状态机进行的正则表达式软件库。
- SLRE: 适用于C / C++的超轻正则表达式引擎。
- sregex: 基于NFA / DFA的Perl兼容的正则表达式引擎库,不可回溯,可与大型数据流进行匹配。
หุ่นยนต์
- MOOS-IvP: 一组开源C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆。
- MRPT: 移动机器人编程工具包。
- PCL: 点云库是一个独立的,大规模的开放项目,用于2D/3D图像和点云处理。
- Robotics Library (RL): 一个独立的C++库,包括机器人动力学,运动规划和控制。
- RobWork: 一组C++库的集合,用于机器人系统的仿真和控制。
- ROS: 机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。
科学计算
- AMGCL: 只包含头文件的C++库,用于解决具有代数多重网格的大型稀疏线性系统。
- FFTW: 用一维或者多维计算DFT的C语言库。
- GSL: GNU科学库。
- TileDB: 快速密集和稀疏多维数组的DBMS。
- Trilinos: 高性能的PDE解算器。
- Torch: 科学的计算框架,广泛支持将GPU放在首位的机器学习算法。
สคริปต์
- AngelScript: AngelScript是一种面向游戏的解释/编译脚本语言。
- Boost.Python: 可实现C++和Python编程语言之间的无缝互操作性的C++库。
- cppimport: 直接从Python导入C++文件!
- CppSharp: 用于将C / C++ API融合到高级语言中的工具和库。
- ChaiScript: 用于C++的易于使用的嵌入式脚本语言。
- ctypes.sh: bash的外部函数接口。
- Cython: Cython是用于Python编程语言和扩展的Cython编程语言(基于Pyrex)的优化静态编译器。它使得为Python编写C扩展就像Python本身一样容易。
- djinni: 生成跨语言类型声明和接口绑定的工具。
- Duktape: 具有紧凑脚本的嵌入式Javascript引擎。
- JavaCpp: Java和本机C++之间缺少的桥梁。
- libffi: 可移植的外部功能接口库。
- Lua: 用于配置文件和基本应用程序脚本的小型快速脚本引擎。
- LuaBridge: 轻量级、无依赖的库,用于将Lua绑定到C++。
- luacxx: 用于创建Lua绑定的C++ 11 API。
- nbind: 神奇的头文件,使您的C++库可从JavaScript进行访问。
- PHP-CPP: 使用C++构建PHP扩展的库。
- pybind11: C++ 11和Python之间的无缝可操作性。
- SIP: 用于Python v2和v3的C或C++绑定生成器。
- sol2: 具有高级功能和一流性能的C++ <-> Lua API封装器。
- SWIG: 一个可以让你的C++代码链接到JavaScript,Perl,PHP,Python,Tcl和Ruby的包装器/接口生成器。
- V7: 嵌入式的JavaScript 引擎。
- V8: 谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中。
- ChakraCore: Microsoft的JavaScript引擎,可以嵌入到nodejs中。
序列化
- Bitsery: 只包含头文件的C++二进制序列化库。
- Bond: 用于处理模式化数据的开源、跨平台框架。
- Boost.Serialization: Boost序列化库。
- Cap'n Proto: 快速数据交换格式和RPC系统。
- cereal: C++11 序列化库。
- cppcodec: 只包含头文件的C++ 11库,具有一致、灵活的API来编码/解码base64,base32和hex。
- FlatBuffers: 内存高效的序列化库。
- MessagePack: C/C++的高效二进制序列化库,例如JSON。
- mrpt-serialization: 已版本控制的二进制或文本格式的序列化。
- nanopb: ANSI C中的小型代码大小的协议缓冲区实现。
- protobuf: 协议缓冲,谷歌的数据交换格式。
- protobuf-c: C语言的协议缓冲实现。
- SimpleBinaryEncoding: 用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码。
- upb: C中的小型静态库实现。
- YAS: 非常快的序列化库,支持二进制/文本/ JSON格式。
เรียงลำดับ
- pdqsort: 破坏模式的快速排序。
- Timsort: 模板化的稳定排序功能,其性能优于基于快速排序的算法(包括std: : sort),用于反向或半排序数据。
วิดีโอ
- libvpx: VP8/VP9编码解码SDK。
- FFmpeg: 一个完整的,跨平台的解决方案,用于记录,转换视频和音频流。
- libde265: 开放的h.265视频编解码器的实现。
- x265: 开放的H.265视频编解码器实现。
- OpenH264: 开源H.364 编解码器。
- Theora: 免费开源的视频压缩格式。
- Vireo: Twitter的轻量级、多功能的视频处理库。
虚拟机
- CarpVM: C中有趣的VM,让我们一起来看看这个。
- MicroPython: 旨在实现单片机上Python3.x的实现。
- TinyVM: 用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机。
Web应用框架
- Civetweb: 提供易于使用,强大的,C/C++嵌入式Web服务器,带有可选的CGI,SSL和Lua支持。
- C++ REST SDK: 使用现代异步C++ API设计、以本机代码进行基于云的客户端-服务器通信的Microsoft项目。
- CppCMS: 免费高性能的Web开发框架(不是CMS).。
- Crow: 一个C++微型web框架(灵感来自于Python Flask)。
- Cutelyst: 在Qt上构建的C++ Web框架,使用Catalyst(Perl)框架的简单方法。
- Drogon: 基于C++ 14/17的高性能HTTP应用程序框架。
- facil.io: 事件型、高性能的C Web框架,支持HTTP、WebSocket、SSE等。
- Kore: 使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架。
- libOnion: 轻量级的库,帮助你使用C编程语言创建web服务器。
- lwan: 实验性、可扩展的高性能HTTP服务器。
- oat++: 轻量、零依赖的框架,可创建高性能的Web服务。
- Pistache: Pistache是一个用纯C++ 11编写的C++ REST框架,没有外部依赖性。
- QDjango: 使用C++编写的,基于Qt库的web框架,试图效仿Django API,因此得此名。
- TreeFrog Framework: 基于C++和Qt的高速、全栈的Web应用程序框架,支持HTTP和WebSocket协议(带有O / R映射)。
- Wt: 开发Web应用的C++库。
XML
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds
- Boost.PropertyTree: 属性树解析器/生成器,可用于解析XML / JSON / INI / Info文件。
- Expat: 用C语言编写的xml解析库。
- Libxml2: Gnome的xml C解析器和工具包。
- libxml++: C++的xml解析器。
- Mini-XML: 用ANSI C编写的小型XML解析库。
- PugiXML: 用于C++的,支持XPath的轻量级,简单快速的XML解析器。
- RapidXml: 试图创建最快速的XML解析器,同时保持易用性,可移植性和合理的W3C兼容性。
- TinyXML: 简单小型的C++XML解析器,可以很容易地集成到其它项目中。
- TinyXML2: 简单快速的C++CML解析器,可以很容易集成到其它项目中。
- TinyXML++: TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理。
- Xerces-C++: 用可移植的C++的子集编写的XML验证解析器。
多项混杂
一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。
- access_profiler: 用于计算对c ++程序中成员变量的访问的工具。
- American fuzzy lop: aka afl-fuzz-疯狂的模糊测试工具,可在给定时间和最少示例输入的情况下自动发现错误。
- Better String: C字符串库的替代方法,它功能更强大,并且没有缓冲区溢出超限问题。还包括C++封装器。
- Boost.Signals: 托管信号和插槽系统的实现。
- CPPItertools: 受Python内建函数和itertools库启发的基于范围的循环附加组件。
- DynaMix: 允许您在运行时组成和修改对象的库。
- {fmt}: 小型、安全、快速的C++格式化库。
- FastFormat: 受log4j和Pantheios启发的快速、安全的C++格式化。
- C++ Format: C++的小型,安全和快速格式化库。
- casacore: 从aips++ 派生的一系列C++核心库。
- QtVerbalExpressions: 该Qt库基于C++ VerbalExpressions库。
- cxx-prettyprint: 用于C++容器的打印库。
- icecream-cpp: 用于调试目的的小型打印库。
- gcc-poison: 帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件。
- Kangaru: 用于C++ 11和C++ 14的依赖注入容器。
- Klib: 通用算法和数据结构的小型、轻量级实现。
- libsigc++: 用于标准C++的类型安全的回调系统。
- googlemock: 编写和使用C++模拟类的库。
- HTTP Parser: C的http请求/响应解析器。
- libcpuid: 用于x86 CPU检测盒特征提取的小型C库。
- libevil: 许可证管理器
- libnih: C函数和结构的轻量级库。
- libusb: 允许移动访问USB设备的通用USB库。
- Mach7: C++的模式匹配库。
- mio: 用于内存映射文件IO的跨平台C++ 11库,只包含头文件。
- PEGTL: 解析表达语法模板库。
- PCRE: 正则表达式C库,灵感来自于Perl中正则表达式的功能。
- Remote Call Framework: C++的进程间通信框架。
- Scintilla: 开源的代码编辑控件。
- Serial Communication Library: C++语言编写的跨平台,串口库。
- SDS: C的简单动态字符串库。
- semver.c: semver解析器,在ANSI C中呈现。
- Serial Communication Library: 跨平台,用C++编写的串行端口库。
- sigslot: C++信号/插槽库。
- SimpleSignal: 高性能C++ 11信号。
- Stage: 移动机器人模拟器。
- stdman: 格式化的C++ 11/14 stdlib手册页(来自cppreference)。
- stb: 一系列用于C / C++的单文件库。
- StrTk: 由高性能字符串处理例程组成的C++库。
- Tulip Indicators: 超过100种财务技术分析指标的C库。
- ub-canaries: 一组C / C++程序,它们试图使编译器开发未定义的行为。
- value-category-cheatsheet: 用于lvalue、rvalue等的PDF快捷键管理。
- VarTypes: C++/Qt4功能丰富,面向对象的管理变量的框架。
- ZBar: '条形码扫描器'库,可以扫描照片,图片和视频流中的条形码,并返回结果。
- ZXing: 用Java实现的开源、多格式1D / 2D条码图像处理库,带有其他语言的端口。
- pprint: 适用于现代C++的Pretty Printer。
ซอฟต์แวร์
用于创建开发环境的软件
ผู้ประกอบการ
C/C++编译器列表
- 8cc: 小型C编译器。
- c: 一次编译并执行C“脚本”!
- Clang: LLVM的C编译器,支持C++ 11/14 / 1z C11,由LLVM团队开发。
- GCC: GNU编译器集合,支持C++ 11/14 / 1z C11和OpenMP。
- PCC: 非常老的C编译器,支持C99。
- Intel C++ Compiler: 由英特尔公司开发。
- LLVM: 模块化和可重用编译器和工具链技术的集合。
- Microsoft Visual C++: MSVC,由微软公司开发。
- Open WatCom: Watcom,C,C++和Fortran交叉编译器和工具。
- Oracle Solaris Studio: 适用于SPARC和x86的C、C++和Fortran编译器,支持C++ 11 ,在Linux和Solaris上可用。
- TCC: 轻量级的C语言编译器。
在线编译器
在线C/C++编译器列表
- codepad: 在线编译器/解释器,一个简单的协作工具
- coliru: 在线编译器/ shell,支持各种C++编译器。
- Compiler Explorer: 具有编译输出的交互式编译器。
- CompileOnline: 在Linux上在线编译和执行C++。
- Ideone: 在线编译器和调试工具,可编译源代码并以60多种编程语言在线执行。
- repl.it: 针对教育者、学习者和开发人员的功能强大而简单的工具和平台。
- Rextester: 在线编译器,提供几个编译器(Clang,GCC,MSVC)和几个编辑器。
- Try It Online: TIO是一系列在线解释器,可用于越来越多的实用和休闲的编程语言。
- Wandbox: 具有Boost的在线Clang / GCC编译器。
- paiza.io: 具有多个文件支持功能、Github(gist)集成和协作编辑的在线C / C++编译器。
调试器
C/C++调试器列表
- Comparison of debuggers: 来自维基百科的调试器列表。
- GDB: GNU调试器。
- LLDB: LLDB调试器。
- Metashell: 交互式模板元程序设计,其中包括MDB metadebugger。
- Valgrind: 内存调试,内存泄露检测,性能分析工具。
- x64dbg: Windows的开源x64 / x32调试器。
集成开发环境
C/C++集成开发环境列表
- Anjuta DevStudio: GNOME IDE。
- AppCode: 构建与JetBrains' IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境。
- Cevelop: 基于Eclipse CDT的跨平台C和C++ IDE,带有其他插件。
- CLion: 来自JetBrains的跨平台的C/C++的集成开发环境。
- Code::Blocks: 免费C,C++和Fortran的集成开发环境。
- CodeLite: 另一个跨平台的免费的C/C++集成开发环境。
- color_coded: 用于基于libclang的vim插件。
- Dev-C++: 可移植的C/C++/C++11集成开发环境。
- Eclipse CDT: 基于Eclipse平台的功能齐全的C和C++集成开发环境。
- Geany: 轻量级的快速,跨平台的集成开发环境。
- IBM VisualAge: 来自IBM的家庭计算机集成开发环境。
- Irony-mode: 由libclang驱动的用于Emacs的C/C++微模式。
- KDevelop: 免费开源集成开发环境。
- Microsoft Visual Studio: 来自微软的集成开发环境。
- Microsoft Visual Studio Code: Microsoft提供的开源IDE。
- NetBeans: 主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。
- Qt Creator: 跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。
- rtags: C/C++的客户端服务器索引,用于跟基于clang的emacs的集成。
- Xcode: 由苹果公司开发。
- YouCompleteMe: 一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。
- cquery: 用于vscode,emacs,vim等的C++代码完成引擎。
构建系统
- Bazel: Google提供的多语言、快速且可扩展的构建系统。
- Bear: 用于为clang工具生成编译数据库的工具。
- Buck: 用Java编写的快速构建系统,可鼓励在多种平台和语言(包括在Facebook开发和使用的C++)上创建小型、可重用模块。
- clib: C语言的软件包管理器。
- Biicode: 基于文件的简单依赖管理器。
- CMake: 跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。
- Cget: Cmake软件包检索。
- Conan: C / C++程序包管理器,开源的。
- CPM: 基于CMake和Git的C++包管理器。
- FASTBuild: 高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。
- Hunter: CMake驱动的C++跨平台软件包管理器。
- MesonBuild: 开源构建系统,它意味着不仅要非常快,而且更重要的是要尽可能地方便用户使用。
- Ninja: 专注于速度的小型构建系统。
- Scons: 使用Python scipt 配置的软件构建工具。
- Sconsolidator: 用于Eclipse CDT的Scons构建系统集成。
- Spack: 灵活的软件包管理器,支持多个版本、配置、平台和编译器。
- SW: 跨平台的C++(和其他语言)构建系统和程序包管理器,其中包含许多可用程序包。
- tundra: 高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。
- tup: 基于文件的构建系统,用于后台监控变化的文件。
- Premake: 配置有Lua脚本的工具,可以在Windows、Mac OS X和Linux上为Visual Studio、GNU Make、Xcode、Code::Blocks等生成项目文件。
- Vcpkg: Windows,Linux和MacOS的C++库管理器。
- waf: 用于配置、编译和安装应用程序的基于Python的框架。
- XMake: 基于Lua的C / C++的跨平台构建实用程序。
静态代码分析
提高质量,减少瑕疵的代码分析工具列表
- Cppcheck: 静态C/C++代码分析工具
- CppDepend: 通过分析和可视化代码依赖关系,定义设计规则,进行影响分析以及比较不同版本的代码,简化了对复杂C / C++代码库的管理。
- cpplint: 遵循Google C++样式指南的C++样式检查器。
- PVS-Studio: 用C、C++和C#编写的在程序源代码中进行bug检测的工具。
- cpp-dependencies: 检查C++ #include依赖关系的工具(以.dot格式创建的依赖关系图)。
- include-what-you-use: 使用clang进行代码分析的工具,可以#include在C和C++文件中。
- Infer: 用于Java、C和Objective-C的静态分析器。
- OCLint: 用于C、C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。
- Clang Static Analyzer: 查找C、C++和Objective-C程序bug的源代码分析工具。
- Linticator: Pc-/FlexeLint的Eclipse CDT集成。
- IKOS: 基于抽象解释理论的C / C++静态分析器。
- List of tools for static code analysis: 来自维基百科的静态代码分析工具列表。
编码样式工具
- Artistic Style: 格式化C / C++ / C#/ Obj-C / Java代码的工具。也称为astyle。
- ClangFormat: 格式化C / C++ / Obj-C代码的工具。
- Clang-Tidy: 基于Clang的C++ linter工具。
- EditorConfig: EditorConfig帮助在不同的编辑器和IDE之间维护一致的编码样式
- Uncrustify: 代码美化器。