整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Github 2024-03-27 C開源項目日報

          Github 2024-03-27 C開源項目日報 Top10

          身邊奇聞趣事#

          根據Github Trendings的統計,今日(2024-03-27統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下:

          開發語言

          項目數量

          C項目

          10

          C++項目

          1

          HTML項目

          1

          我的電視 - 安卓電視直播軟件

          • 創建周期:40 天
          • 開發語言:C
          • Star數量:649 個
          • Fork數量:124 次
          • 關注人數:649 人
          • 貢獻人數:1 人
          • Open Issues數量:23 個
          • Github地址:https://github.com/lizongying/my-tv.git

          我的電視是一個開源的安卓電視直播應用,內置了直播源。

          Cosmopolitan Libc: 一次構建,隨處運行的C庫

          • 創建周期:1381 天
          • 開發語言:C
          • 協議類型:ISC License
          • Star數量:14440 個
          • Fork數量:473 次
          • 關注人數:14440 人
          • 貢獻人數:70 人
          • Open Issues數量:151 個
          • Github地址:https://github.com/jart/cosmopolitan.git

          Cosmopolitan Libc是一個C庫,可以實現一次構建,隨處運行的語言,類似于Java,但不需要解釋器或虛擬機。相反,它重新配置GCC和Clang以輸出符合POSIX標準的多語言格式,在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上以最佳性能和最小的占用空間運行。

          Memcached: 面向分布式系統的高性能緩存存儲

          • 創建周期:5451 天
          • 開發語言:C
          • 協議類型:BSD 3-Clause “New” or “Revised” License
          • Star數量:13106 個
          • Fork數量:3237 次
          • 關注人數:13106 人
          • 貢獻人數:182 人
          • Open Issues數量:71 個
          • Github地址:https://github.com/memcached/memcached.git
          • 項目首頁: https://memcached.org

          Memcached是一個面向分布式系統設計的高性能多線程事件驅動的鍵值緩存存儲。它是解決奇怪行為和超時問題的寶貴資源,并提供了有趣的使用教程。

          ImageMagick:數字圖像編輯和處理的開源軟件套件

          • 創建周期:3237 天
          • 開發語言:C, HTML
          • 協議類型:Other
          • Star數量:10886 個
          • Fork數量:1268 次
          • 關注人數:10886 人
          • 貢獻人數:154 人
          • Open Issues數量:104 個
          • Github地址:https://github.com/ImageMagick/ImageMagick.git
          • 項目首頁: https://imagemagick.org

          ImageMagick是一個免費的開源軟件套件,用于編輯和處理數字圖像,支持包括JPEG、PNG、GIF、TIFF和PDF在內的多種文件格式。

          cJSON:超輕量級JSON解析器

          • 創建周期:2930 天
          • 開發語言:C
          • 協議類型:MIT License
          • Star數量:9902 個
          • Fork數量:3091 次
          • 關注人數:9902 人
          • 貢獻人數:76 人
          • Open Issues數量:220 個
          • Github地址:https://github.com/DaveGamble/cJSON.git

          cJSON是用ANSI C編寫的超輕量級JSON解析器。

          Windows 11 驅動程序示例

          • 創建周期:3309 天
          • 開發語言:C, C++
          • 協議類型:Microsoft Public License
          • Star數量:6567 個
          • Fork數量:4862 次
          • 關注人數:6567 人
          • 貢獻人數:129 人
          • Open Issues數量:428 個
          • Github地址:https://github.com/microsoft/Windows-driver-samples.git

          該存儲庫包含用于 Microsoft Visual Studio 和 Windows Driver Kit (WDK) 的驅動程序示例,包括通用 Windows 驅動程序和僅桌面驅動程序示例。這些示例旨在為各種硬件形態因素(從手機到臺式電腦)提供通用 Windows 驅動程序支持的基礎,并且旨在與 Visual Studio 2022 和 Windows Driver Kit (WDK) 11 一起使用。

          GmSSL:國產商用密碼開源庫

          • 創建周期:3404 天
          • 開發語言:C
          • 協議類型:Apache License 2.0
          • Star數量:4663 個
          • Fork數量:1581 次
          • 關注人數:4663 人
          • 貢獻人數:31 人
          • Open Issues數量:238 個
          • Github地址:https://github.com/guanzhi/GmSSL.git
          • 項目首頁: http://gmssl.org

          GmSSL is a domestically produced commercial open-source cryptographic library developed independently by Peking University, which comprehensively covers the functions of national cryptographic algorithms, standards, and secure communication protocols. It supports mainstream operating systems and processors, including mobile platforms, and typical domestic cryptographic hardware such as cryptographic keys and cards. It provides feature-rich command-line tools and various programming interfaces in multiple compiled languages.

          Apache AGE: PostgreSQL的圖數據庫擴展

          • 創建周期:1351 天
          • 開發語言:C
          • 協議類型:Apache License 2.0
          • Star數量:2488 個
          • Fork數量:341 次
          • 關注人數:2488 人
          • 貢獻人數:74 人
          • Open Issues數量:394 個
          • Github地址:https://github.com/apache/age.git
          • 項目首頁: https://age.apache.org

          Apache AGE是PostgreSQL的一個擴展,它增加了圖數據庫支持,使用戶能夠在現有的關系數據庫上利用圖數據庫。它經過優化,能夠處理復雜的連接圖數據,并支持openCypher查詢、多個圖以及分層圖標簽組織。該項目旨在通過將PostgreSQL的功能和特性與圖模型相結合,提供一個連貫且易于實現的多模型數據庫。它的設計簡單易用,支持各種平臺,并提供不同編程語言的驅動程序。此外,Apache AGE Viewer是一個用戶界面,提供數據可視化和探索功能,增強了Apache AGE的能力。

          Slurm: 一個高度可擴展的工作負載管理器

          • 創建周期:4608 天
          • 開發語言:C
          • 協議類型:Other
          • Star數量:2190 個
          • Fork數量:604 次
          • 關注人數:2190 人
          • 貢獻人數:242 人
          • Open Issues數量:4 個
          • Github地址:https://github.com/SchedMD/slurm.git
          • 項目首頁: https://slurm.schedmd.com/

          Slurm是一個開源的集群資源管理和作業調度系統,提供對計算節點的獨占和/或非獨占訪問,執行和監視分配節點上的工作的框架,并管理沖突的資源請求。它簡單、可擴展、便攜、容錯和互連不可知,并且僅在Linux下進行了測試。

          PlaceHolderKV: 新型開源鍵值存儲

          • 創建周期:5 天
          • 開發語言:C
          • 協議類型:BSD 3-Clause “New” or “Revised” License
          • Star數量:521 個
          • Fork數量:21 次
          • 關注人數:521 人
          • 貢獻人數:386 人
          • Open Issues數量:26 個
          • Github地址:https://github.com/placeholderkv/placeholderkv.git

          該項目是一個名為PlaceHolderKV的新型開源鍵值存儲,它是Redis項目的一個分支。README目前正在建設中,該項目旨在構建一個新的社區驅動的高性能鍵值存儲。它提供了有關構建、測試、修復構建問題、選擇內存分配器、構建TLS支持、運行和安裝PlaceHolderKV的信息。

          log

          zlog是一個高可靠性、高性能、線程安全、靈活、概念清晰的純C日志函數庫。

          zlog在效率、功能、安全性上大大超過了log4c,并且是用c寫成的,具有比較好的通用性。

          zlog有這些特性:

          • syslog分類模型,比log4j模型更加直接了當
          • 日志格式定制,類似于log4j的pattern layout
          • 多種輸出,包括動態文件、靜態文件、stdout、stderr、syslog、用戶自定義輸出函數
          • 運行時手動、自動刷新配置文件(同時保證安全)
          • 高性能,在作者的筆記本上達到25萬條日志每秒, 大概是syslog(3)配合rsyslogd的1000倍速度
          • 用戶自定義等級
          • 多線程和多進程環境下保證安全轉檔
          • 精確到微秒
          • 簡單調用包裝dzlog(一個程序默認只用一個分類)
          • MDC,線程鍵-值對的表,可以擴展用戶自定義的字段
          • 自診斷,可以在運行時輸出zlog自己的日志和配置狀態
          • 不依賴其他庫,只要是個POSIX系統就成(當然還要一個C99兼容的vsnprintf)

          zlog倉庫鏈接:

          https://github.com/HardySimpson/zlog

          zlog使用手冊:

          http://hardysimpson.github.io/zlog/UsersGuide-CN.html

          test.c:

          #include <stdio.h>
          #include "zlog.h"
          
          int main(int argc, char** argv)
          {
              int rc;
              zlog_category_t *zc;
          
              rc=zlog_init("test.conf");
              if (rc) 
              {
                  printf("init failed\n");
                  return -1;
              }
          
              zc=zlog_get_category("my_cat");
              if (!zc) 
              {
                  printf("get cat fail\n");
                  zlog_fini();
                  return -2;
              }
          
              zlog_info(zc, "嵌入式大雜燴");
              zlog_info(zc, "hello, zlog");
          
              zlog_fini();
              
              return 0;
          }

          test.conf:

          xmake

          xmake是一個跨平臺的安裝(編譯)工具。

          xmake 是一個基于 Lua 的輕量級跨平臺構建工具,使用 xmake.lua 維護項目構建,相比 makefile/CMakeLists.txt,配置語法更加簡潔直觀,對新手非常友好,短時間內就能快速入門,能夠讓用戶把更多的精力集中在實際的項目開發上。

          xmake官網:

          https://xmake.io/

          1、支持的平臺

          • Windows (x86, x64)
          • macOS (i386, x86_64, arm64)
          • Linux (i386, x86_64, cross-toolchains ..)
          • *BSD (i386, x86_64)
          • Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a)
          • iOS (armv7, armv7s, arm64, i386, x86_64)
          • WatchOS (armv7k, i386)
          • MSYS (i386, x86_64)
          • MinGW (i386, x86_64, arm, arm64)
          • Cygwin (i386, x86_64)
          • Wasm (wasm32)
          • Cross (cross-toolchains ..)

          2、支持的工具鏈

          3、支持的語言

          • C/C++
          • Objc/Objc++
          • Swift
          • Assembly
          • Golang
          • Rust
          • Dlang
          • Fortran
          • Cuda
          • Zig (Experimental)

          4、編譯測試

          多任務并行編譯測試:

          單任務編譯測試:

          官網上的內容很豐富,對xmake做了很詳細的介紹,感興趣的小伙伴可以自己去了解學習。

          gear-lib

          gear-lib是一組通用的C基礎庫。

          • 全部用POSIX C實現,目標是為了跨平臺兼容linux, windows, android, ios。
          • 適用于物聯網,嵌入式,以及網絡服務開發等場景。

          包含如下內容:

          gear-lib使用起來很方便,可以作為我們日常開發中的工具庫。

          gear-lib地址:

          https://github.com/gozfree/gear-lib

          inih

          inih是一個C 語言編寫的 INI 文件解析器。

          ini 文件是 Initialization File 的縮寫,即初始化文件。INI文件由節、鍵、值組成,注解使用分號表示(;)

          例子:

          [ip]                ;Section1
          ip_addr=192.168.1.103
          
          [test]              ;Section2
          name=ZhengN       
          num=66  
          
          #include <stdio.h>
          #include <stdlib.h>
          #include <string.h>
          #include "ini.h"
          
          typedef struct
          {
              const char* ip_addr;
              const char* name;
              int num;
          } configuration;
          
          static int handler(void* user, const char* section, const char* name,
                             const char* value)
          {
              configuration* pconfig=(configuration*)user;
          
              #define MATCH(s, n) strcmp(section, s)==0 && strcmp(name, n)==0
              if (MATCH("ip", "ip_addr")) 
              {
                  pconfig->ip_addr=strdup(value);
              } 
              else if (MATCH("test", "name")) 
              {
                  pconfig->name=strdup(value);
              } 
              else if (MATCH("test", "num")) 
              {
                  pconfig->num=atoi(value);
              } 
              else 
              {
                  return 0;  /* unknown section/name, error */
              }
          
              return 1;
          }
          
          int main(int argc, char* argv[])
          {
              configuration config;
              config.ip_addr=NULL;  /* set defaults */
              config.name=NULL;
              config.num=0;
          
              if (ini_parse("ip.ini", handler, &config) < 0) 
              {
                  printf("Can't load 'ip.ini'\n");
                  return 1;
              }
              printf("Config loaded from 'ip.ini': ip_addr=%s, name=%s, num=%d\n",
                  config.ip_addr, config.name, config.num);
          
              if (config.ip_addr)
                  free((void*)config.ip_addr);
              if (config.name)
                  free((void*)config.name);
          
              return 0;
          }
          

          queue

          queue.h是Linux、FreeBSD中的一個很實用的頭文件。這個頭文件里全是宏定義操作,所以其不僅可以使用在Linux/嵌入式Linux項目中,也可以使用在單片機項目中。

          它使用宏實現了如下數據結構:

          • SLIST:單向無尾鏈表
          • LIST:雙向無尾鏈表
          • STAILQ:單向有尾鏈表(可作隊列使用)
          • TAILQ:雙向有尾鏈表(可作隊列使用)

          所有的數據結構都支持如下功能:

          • 在鏈表頭插入節點
          • 在任意節點后插入節點
          • 刪除節點
          • 遍歷節點

          我們可以在Linux系統的如下路徑中找到這個頭文件:

          /usr/include/sys/queue.h

          也可以通過如下網址查看:

          https://code.woboq.org/userspace/glibc/misc/sys/queue.h.html

          /*
           * Singly-linked List definitions.
           */
          #define SLIST_HEAD(name, type)         \
          struct name {                   \
           struct type *slh_first; /* first element */        \
          }
          
          #define SLIST_HEAD_INITIALIZER(head)       \
           { NULL }
          
          #define SLIST_ENTRY(type)          \
          struct {              \
           struct type *sle_next; /* next element */     \
          }
          
          /*
           * Singly-linked List functions.
           */
          #define SLIST_INIT(head) do {         \
           (head)->slh_first=NULL;         \
          } while (/*CONSTCOND*/0)
          
          #define SLIST_INSERT_AFTER(slistelm, elm, field) do {   \
           (elm)->field.sle_next=(slistelm)->field.sle_next;   \
           (slistelm)->field.sle_next=(elm);       \
          } while (/*CONSTCOND*/0)
          
          #define SLIST_INSERT_HEAD(head, elm, field) do {    \
           (elm)->field.sle_next=(head)->slh_first;     \
           (head)->slh_first=(elm);         \
          } while (/*CONSTCOND*/0)
          
          #define SLIST_REMOVE_HEAD(head, field) do {      \
           (head)->slh_first=(head)->slh_first->field.sle_next;  \
          } while (/*CONSTCOND*/0)
          
          #define SLIST_REMOVE(head, elm, type, field) do {    \
           if ((head)->slh_first==(elm)) {       \
            SLIST_REMOVE_HEAD((head), field);      \
           }               \
           else {              \
            struct type *curelm=(head)->slh_first;    \
            while(curelm->field.sle_next !=(elm))     \
             curelm=curelm->field.sle_next;     \
            curelm->field.sle_next=\
                curelm->field.sle_next->field.sle_next;    \
           }               \
          } while (/*CONSTCOND*/0)
          
          #define SLIST_FOREACH(var, head, field)       \
           for((var)=(head)->slh_first; (var); (var)=(var)->field.sle_next)
          
          /*
           * Singly-linked List access methods.
           */
          #define SLIST_EMPTY(head) ((head)->slh_first==NULL)
          #define SLIST_FIRST(head) ((head)->slh_first)
          #define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
          

          cJSON

          https://github.com/DaveGamble/cJSON.git

          JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。

          cJSON是C語言編寫的用于解析與組包JSON數據的一個庫。

          protobuf

          https://github.com/protocolbuffers/protobuf

          Protocol Buffers,是Google公司開發的一種數據格式,類似于XML能夠將結構化數據序列化,可用于數據存儲、通信協議等方面。它不依賴于語言和平臺并且可擴展性極強。

          JSON類型數據可讀性很好,但是整個數據包中會帶有一些無用的數據,自然會在一定程度上帶來通信負擔。protobuf是一種相對JSON來說更為輕量的數據格式。

          protobuf的優點:

          • 可擴展性強。
          • 消息格式升級和兼容性好
          • 支持跨平臺多語言
          • 序列化反序列化速度很快
          • 序列化后體積相比Json和XML很小,適合網絡傳輸

          如果文章對你有幫助,麻煩幫忙點贊、收藏、轉發,謝謝!


          私信回復【嵌入式書籍】,可獲取博主精心整理的嵌入式電子書一份

          tml+css+js 黑神話悟空網頁設計與制作

          網站介紹

          1、網站程序:主要使用網頁三劍客html+css+javaScript實現網頁設計與制作,完成網站的功能設計。制作適用于任何瀏覽器或設備的精美網站。

          2、網站素材:搜集或制作適合網頁風格和尺寸的圖片,追求優質視覺體驗。

          3、網站文件:網站系統文件種類包含html網頁結構文件、css網頁樣式文件、js網頁特效文件、images網頁圖片文件等。

          4、網頁編輯:網頁作品代碼簡單,可使用任意HTML編輯軟件(如:Dreamweaver、Sublime 、HBuilder、Vscode 、Webstorm、Notepad++ 、Text 等任意編輯軟件進行編輯修改等操作)。

          5、網站布局:主要采用浮動布局。兼容各大主流瀏覽器、顯示效果穩定。

          6、網頁效果預覽:雙擊html文件或者拖拽html文件到瀏覽器打開,即可預覽當前網頁效果。


          網站亮點

          1、視覺設計:排版布局極簡設計,優質的視覺體驗等。

          2、動效交互:幻燈效果、入場動畫、按鈕點擊、視差功能、錨點功能、圖片畫廊功能等。


          網站文件目錄

          (1)index.html:首頁html;

          (2)style:靜態資源目錄,存放css網頁樣式文件、js網頁特效文件、images網頁圖片文件等;

          (3)css文件夾:存放網頁所有css樣式表文件文件;

          (4)images文件夾:存放網頁所有圖片資源文件;

          (5)js文件夾:存放網頁所有網頁特效文件;


          適用于課程設計、HTML期末大作業等。


          主站蜘蛛池模板: 国产精品亚洲一区二区麻豆| 日本精品一区二区在线播放| 激情内射亚洲一区二区三区 | 视频一区视频二区日韩专区| 亚洲日本精品一区二区| 国产免费私拍一区二区三区| 国产香蕉一区二区精品视频| 亚洲AV成人一区二区三区AV| 中日av乱码一区二区三区乱码| 日本一区免费电影| 亚洲av无码一区二区三区在线播放| 日韩一区二区久久久久久| 国产一区二区三区精品视频| 亚洲国产av一区二区三区| 国产成人精品亚洲一区| 国产未成女一区二区三区| 精品人妻无码一区二区色欲产成人 | 久久婷婷久久一区二区三区| 久久亚洲中文字幕精品一区四| 日韩精品无码人妻一区二区三区| 成人久久精品一区二区三区| 深田咏美AV一区二区三区| 亚洲一区二区久久| 中文乱码人妻系列一区二区| 亚洲视频一区二区三区四区| 中文字幕人妻第一区| 亚洲变态另类一区二区三区| 亚洲AV成人精品一区二区三区 | 精品无码一区二区三区爱欲九九 | 麻豆aⅴ精品无码一区二区| 亚洲熟女综合一区二区三区| 精品人妻AV一区二区三区| 亚洲综合av一区二区三区不卡| 亚洲爆乳精品无码一区二区| 精品不卡一区中文字幕| 不卡无码人妻一区三区音频 | 黑巨人与欧美精品一区| 国产一区二区三区在线免费| 中文字幕一区视频一线| 久久国产精品亚洲一区二区| 亚洲一区二区三区写真|