《HelloGitHub》第 97 期

興趣是最好的老師,HelloGitHub 讓你對編程感興趣!

簡介

HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。

https://github.com/521xueweihan/HelloGitHub

這裏有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言 Python、Java、Go、C/C++、Swift...讓你在短時間內感受到開源的魅力,對編程產生興趣!


以下爲本期內容|每個月 28 號更新

C 項目

1、freeswitch:運營商級的開源電話平臺。這是一個支持 SIP、WebRTC 等多種通信協議的開源通信框架,它作爲一個多用途的軟交換機,可以用來創建各種語音和消息服務,比如企業電話系統、虛擬呼叫中心、視頻會議服務等。

2、NetHack:一款歷史悠久的 Roguelike 遊戲。這是一款經典的 Roguelike 單機遊戲,玩家將扮演一位地下城的探險者去尋找神祕的 Yendor 項鍊。遊戲的界面由 ASCII 字符組成,具有自由度高、難度大、地圖隨機生成和永久死亡的特點,被玩家稱爲可以玩一輩子的遊戲。

3、rt-thread:小而美的物聯網操作系統。這是一個由國人發起的開源物聯網操作系統,具有優秀的可裁剪性和可擴展性。可以運行在 ARM Cortex-M0 芯片上的極小內核,到中等的 ARM Cortex-M3/4/7 系統,甚至是多核 64 位的 ARM Cortex-A、MIPS32/64 等不同架構的處理器。同時還提供了功能豐富的組件和軟件包,可幫助開發者快速構建嵌入式系統產品。來自 @阿基米東 的分享

C# 項目

4、g-helper:一款輕量級的華碩奧創中心替代品。該項目是華碩筆記本奧創控制中心(遊戲本控制軟件)的開源替代品。它擁有簡潔的界面和極低的系統資源佔用等特點,支持無縫切換顯卡模式、調節屏幕刷新率、風扇曲線、電源功耗、鍵盤燈光等功能。

5、WingetUI:帶界面的 Windows 包管理器。該項目是一個爲 Windows 常用的命令行包管理工具設計的用戶界面,如 Winget、Scoop、Pip、NPM、.NET Tool 等。它的界面友好、設計美觀、支持中文,通過它你可以輕鬆下載、安裝、更新和卸載包管理器上發佈的任何軟件以及其它日常應用,如瀏覽器、PDF 閱讀器等。

C++ 項目

6、cppinsights:從編譯器的視角看 C++ 的代碼。這是一個基於 Clang 的開發工具,它可以將源代碼轉化成編譯器的推導結果,讓用戶從編譯器的視角深入瞭解代碼的內部機制,可以用來展示和講解抽象語法樹(AST)和 C++ 語言的新特性。

7、stellarium:一款開源的天象模擬軟件。該項目是天文愛好者必備神器,它能夠精確地模擬/展示出頭頂星空的景象,包括恆星、星座、行星、彗星等天體,支持選擇時間和地點、放大觀察、圖解星座等功能,提供了 Windows、Linux、macOS、iOS 和 Android 在內的多個平臺客戶端。

8、VideoPipe:跨平臺的視頻結構化和分析框架。這是一個用於視頻分析和結構化的框架,採用 C++ 編寫、依賴少、易上手。它就像一個管道每個節點相互獨立,可自行搭配構建出不同類型的視頻分析管道,適用於視頻結構化、圖片搜索、人臉識別、安防領域的行爲分析(如交通事件檢測)等場景。來自 @周智 的分享

Go 項目

9、freeze:生成代碼圖片的終端工具。該項目可以將代碼片段和終端輸出,轉換成 PNG、SVG 和 WebP 格式的圖片,它採用 Go 語言開發,特點是安裝簡單和易於使用,支持一條命令生成圖片,也可以通過交互模式生成定製的圖片。

# macOS or Linux
brew install charmbracelet/tap/freeze

# Arch Linux (btw)
pacman -S freeze

# Nix
nix-env -iA nixpkgs.charm-freeze

10、jaeger:開源的分佈式鏈路追蹤平臺。該項目是受到 Dapper 和 OpenZipkin 的啓發,由 Uber 創建並開源的分佈式調用鏈追蹤平臺。它可用於監控和診斷分佈式應用(微服務),功能包括支持多語言、全鏈路追蹤、上下文傳遞、性能指標、可視化和告警等。來自 @塔咖 的分享

11、opengist:GitHub Gist 的開源替代品。該項目將代碼或文本片段存儲於 Git 倉庫中,用戶可以通過 Git 命令或 Web 查看和修改內容,類似 GitHub 的 Gist 服務。它開源、可自託管,支持創建公開/私人片段、語法高亮、搜索代碼、嵌入其它網站和修改歷史等功能。

Java 項目

12、CompreFace:免費、開源的人臉識別系統。該項目提供了用於人臉識別、檢測、驗證、頭部姿勢檢測、性別和年齡識別的 REST API 服務,不用懂機器學習就能輕鬆集成到任何系統中。它後端採用 Java 編寫,人臉識別是基於 FaceNet 和 InsightFace 實現,同時支持 Docker 部署。

13、fdroidclient:免費、開源的 Android 應用商店。該項目是 F-Droid 的 Android 客戶端,專門收集各類開源安卓軟件(FOSS)的應用商店。它裏面大部分是免費且無廣告的應用,如遇到資源加載慢的情況,可通過設置鏡像源解決。

JavaScript 項目

14、cmdk:快速、無樣式的命令菜單 React 組件。該項目可以幫助開發者輕鬆實現一個直觀且功能豐富的命令菜單,類似於 ⌘K 快捷鍵喚起的交互式菜單,從而提升用戶的交互體驗,適用於各種 Web 應用。來自 @Daaihang Wong 的分享

import { Command } from 'cmdk'

const CommandMenu = () => {
  return (
    <Command label="Command Menu">
      <Command.Input />
      <Command.List>
        <Command.Empty>No results found.</Command.Empty>

        <Command.Group heading="Letters">
          <Command.Item>a</Command.Item>
          <Command.Item>b</Command.Item>
          <Command.Separator />
          <Command.Item>c</Command.Item>
        </Command.Group>

        <Command.Item>Apple</Command.Item>
      </Command.List>
    </Command>
  )
}

15、outline:開源的文檔和團隊知識庫管理工具。這是一款用 React 和 Node.js 開發的在線文檔編輯和協作工具,它界面美觀、功能豐富、兼容 Markdown 的特點,支持中文和 Docker 部署。此外,它還提供了 Windows、macOS、iOS 和 Android 客戶端,可作爲私人 wiki 或中小型公司的內部文檔和知識庫平臺。

16、Photo-Sphere-Viewer:用於顯示 360° 球體全景的 JavaScript 庫。這是一個基於 Three.js 開發的全景照片查看器,提供了友好的交互和豐富的功能。它支持多種全景圖格式和功能,包括 2:1 全景圖、六面體全景圖、全景圖分片、顯示文本、視頻全景等。來自 @wanzij 的分享

17、strapi:全球領先的開源無頭 CMS。這是一款完全免費、採用 JavaScript/TypeScript 開發的無頭內容管理系統。它擁有開箱即用的 API 和友好的管理面板,自帶權限管理、默認安全、SEO 友好等特點。Strapi 作爲目前 GitHub 上最流行的開源內容管理系統之一,已成爲多家世界 500 強公司的首選 CMS。來自 @greatYe 的分享

18、tailwind-landing-page-template:免費、開源的落地頁模板。該項目是基於 TailwindCSS、React 和 Next.js 構建的落地頁模板,它界面美觀、代碼簡單、設計在線,適用於快速製作公司主頁、活動落地頁等。

git clone 項目
yarn install
yarn dev
# http://localhost:3000

Kotlin 項目

19、breezy-weather:極簡風格的 Android 天氣應用。這是一款非常注重設計的天氣應用程序,採用了 Material Design 設計語言。它簡約乾淨、免費無廣告、同時支持中文,可顯示未來一小時的降水情況、空氣質量、小時預報、實況天氣、花粉、溼度等各種天氣數據。

Python 項目

20、dangerzone:將不可信文檔轉化爲安全 PDF 的工具。這是一個確保文檔安全的開源項目,它可以將存在潛在危險(來路不明、電子郵件附件)的 PDF 文件、辦公文檔或圖片,在隔離的沙盒環境中進行轉換,生成安全的 PDF 文件。

21、great-tables:用 Python 製作漂亮的表格。這個 Python 庫可以用來製作實用且美觀的表格。它提供了一套表格組件,通過組合不同的表格部分,如表頭、表尾、行標籤(stub)以及跨列標籤(spanner labels)等,幫助 Python 開發者輕鬆製作漂亮的數據表格。來自 @Ted LI 的分享

from great_tables import GT
from great_tables.data import sp500

# Define the start and end dates for the data range
start_date = "2010-06-07"
end_date = "2010-06-14"

# Filter sp500 using Pandas to dates between `start_date` and `end_date`
sp500_mini = sp500[(sp500["date"] >= start_date) & (sp500["date"] <= end_date)]

# Create a display table based on the `sp500_mini` table data
(
    GT(sp500_mini)
    .tab_header(title="S&P 500", subtitle=f"{start_date} to {end_date}")
    .fmt_currency(columns=["open", "high", "low", "close"])
    .fmt_date(columns="date", date_style="wd_m_day_year")
    .fmt_number(columns="volume", compact=True)
    .cols_hide(columns="adj_close")
)

22、python-miio:用於控制小米智能家電的 Python 庫。該項目提供了一個 Python 庫和命令行工具,可以用來控制使用小米的 miIO 和 MIoT 協議的設備。藉助它用戶可以輕鬆地與小米智能設備進行通信和遠程控制,包括掃地機器人、燈泡、空氣淨化器等,非常適合喜歡 DIY 智能家居系統的開發者。

23、undetected-chromedriver:繞過反爬檢測的 Python 庫。這是一個經過優化的 Selenium WebDriver 補丁,專門用於防止瀏覽器自動化過程中,觸發反機器人機制。它能夠隱藏瀏覽器特徵(指紋),使用起來十分方便,就像一個 Python 的第三方庫一樣。

import undetected_chromedriver as uc
driver = uc.Chrome(headless=True,use_subprocess=False)
driver.get('https://nowsecure.nl')
driver.save_screenshot('nowsecure.png')

24、wereader:功能全面的微信讀書筆記助手。這是一個基於 PySide6 編寫的微信讀書桌面客戶端,不僅支持閱讀書籍的功能,還有筆記模式,可查看你的全部讀書筆記和熱門劃線等內容。

Rust 項目

25、grex:自動生成正則表達式的命令行工具。當你不知道如何寫正則的時候,或許它能派上用場。該項目是用 Rust 語言開發的命令行工具,它可以根據用戶提供的示例內容返回對應的正則表達式,可以作爲庫或命令行工具使用。來自 @size_t 的分享

26、sqlx:強大的 Rust 異步 SQL 工具包。這是一個真正的異步 SQL 庫,完全使用 Rust 語言開發,支持 PostgreSQL、MySQL、MariaDB、SQLite 數據庫。它提供了編譯時檢查查詢語句和自動緩存語句等功能,讓 Rust 語言和 SQL 數據庫之間的交互變得輕鬆且高效。

use sqlx::postgres::PgPoolOptions;
// use sqlx::mysql::MySqlPoolOptions;
// etc.

#[async_std::main] // Requires the `attributes` feature of `async-std`
// or #[tokio::main]
// or #[actix_web::main]
async fn main() -> Result<(), sqlx::Error> {
    // Create a connection pool
    //  for MySQL/MariaDB, use MySqlPoolOptions::new()
    //  for SQLite, use SqlitePoolOptions::new()
    //  etc.
    let pool = PgPoolOptions::new()
        .max_connections(5)
        .connect("postgres://postgres:password@localhost/test").await?;

    // Make a simple query to return the given parameter (use a question mark `?` instead of `$1` for MySQL/MariaDB)
    let row: (i64,) = sqlx::query_as("SELECT $1")
        .bind(150_i64)
        .fetch_one(&pool).await?;

    assert_eq!(row.0, 150);

    Ok(())
}

27、zero-to-production:用 Rust 從零構建一個電子郵件通信服務。該項目僅是《Zero To Production In Rust》一書的配套項目源碼,並沒有提供書。這本書是介紹如何用 Rust 從零構建一個電子郵件通信服務,包含開發環境配置、持續集成流程、後端 API 開發、錯誤處理以及部署的全過程。

Swift 項目

28、pika:適用於 macOS 的原生顏色選擇器。這是一個專爲 macOS 設計的顏色選擇工具,它免費、快速、易用,讓你能夠在屏幕上快速找到色值。

29、reminders-menubar:極簡的 macOS 菜單欄提醒工具。這是一款使用 SwiftUI 開發的小工具,能夠在 macOS 菜單欄查看/提醒待辦事項。它體積小、交互簡單、界面清爽,支持開機啓動、多語言(包括中文)、菜單欄顯示計數、快捷鍵等功能。

其它

30、cat-catch:開源的媒體嗅探瀏覽器插件。這個名爲「貓爪」的瀏覽器插件,可以幫你列出當前頁面的音樂和視頻資源的下載地址。

31、containers:各種開源軟件的容器鏡像集合。這個項目是由 BitNami 維護和開源的 Docker 容器集合,包含各種開源軟件、系統和 Web 應用。它們都經過了優化和漏洞掃描,可實現 Docker 一鍵部署,輕鬆部署應用,無需繁瑣的安裝和配置過程。

docker pull bitnami/APP
docker pull bitnami/APP:[TAG]

32、ServiceLogos:超可愛的 Logo 集合。這裏是用來存放 Sawaratsuki 製作的各種 logo 的倉庫,這些 logo 製作精美、畫風可愛,包括編程語言、框架、工具和各大社交媒體的商標™️。

33、ungoogled-chromium:更純淨的 Chrome 瀏覽器。該項目是一個移除了 Chrome 瀏覽器中谷歌服務的瀏覽器,保留了完整的瀏覽器功能。

34、web-activity-time-tracker:追蹤你的上網活動時間的瀏覽器插件。這是一款無廣告、開源的瀏覽器插件,能記錄你在不同網站上的瀏覽時間,並提供直觀的統計數據。它支持按天和小時統計瀏覽時間、過濾干擾網站、導出數據等功能。

開源書籍

35、how-to-learn-robotics:機器人學自學指南。這本指南專爲非科班的小夥伴而設計,旨在指導他們如何學習機器人學。它包含了必備知識、入門教材推薦、實踐項目以及進階方法等內容,幫助讀者逐步成長爲一名優秀的機器人工程師。

36、llm-universe:《動手學大模型應用開發》。該項目是專爲小白開發者設計的大模型應用開發教程。內容涵蓋了大模型的概念介紹、如何調用大模型API、知識庫的搭建、構建 RAG(Retrieval-Augmented Generation)應用以及評估方法等內容。

機器學習

37、langchain:構建基於 LLM 應用的框架。LLM 是基於大數據預先訓練好的大型深度學習模型,該項目可讓 LLM 無需再訓練就能訪問新的數據集。它提供了開發 LLM 應用所需的各種模塊,包括連接上下文來源和基於 LLM 進行推理的功能,從而輕鬆開發由 LLMs 支持的各種應用,比如聊天機器人、知識庫和信息提取等。

38、LLaMA-Factory:專門針對 LLM 做微調的框架。這是一個讓微調大型語言模型變得輕鬆的開源項目,它支持 LLaMA、Mistral、ChatGLM 等多種模型,以及增量預訓練、獎勵模型訓練和精度等級等功能。引入了先進的算法和實用的微調技巧,同時提供了便捷的監控工具,方便用戶追蹤實驗進度。

39、ollama:本地運行各種 LLM 的工具。這是一個用 Go 語言寫的工具,用於在本地一條命令安裝、啓動和管理大型語言模型,支持 Llama 3、Gemma、Mistral 等大模型,適用於 Windows、macOS、Linux 操作系統。

40、vanna:與你的 SQL 數據庫聊天。該項目使用 LLM+RAG+數據庫技術,讓用戶能夠通過自然語言查詢 SQL 數據庫,用生成的 SQL 回答你的問題。

最後

感謝參與分​享開源項目的小夥伴們,歡迎更多的開源愛好者來 HelloGitHub 自薦/推薦開源項目。如果你發現了 GitHub 上有趣的項目,就點擊這裏分享給大傢伙吧!

本期有你感興趣的開源項目嗎?如果有的話就留言告訴我吧~如果還沒看過癮,可以點擊閱讀往期內容。

感謝您的閱讀,如果覺得本期內容還不錯的話 求贊、求分享 ❤️

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章