什麼新東西值得學「GitHub 熱點速覽 v.22.29」

削微寒發表於2022-07-18

上週 18k+ 的專案 bun 這周又獲得 7k+ star,是時候瞭解下它背後的程式語言 zig 了,它並不是一門新的語言,伴隨著 bun 的風靡,zig 本週也上了 GitHub 熱榜。同樣,可以學習的還有 software-papers 也是個新專案,收錄了大量值得一讀的軟體工程論文。

除了學習新東西,一些老知識,如果你沒掌握不妨也來二次學習下,比如敲下 www.google.com 之類任意一個網站 web 的工作原理。

知識之外,本週新工具上榜的有 trpc,輕輕鬆鬆搞定 API 以及避免廣告打擾的 pi-hole。

以下內容摘錄自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 熱帖(簡稱 HN 熱帖),選項標準:新發布 | 實用 | 有趣,根據專案 release 時間分類,釋出時間不超過 14 day 的專案會標註 New,無該標誌則說明專案 release 超過半月。由於本文篇幅有限,還有部分專案未能在本文展示,望周知 ?

  • 本文目錄
      1. 本週特推
      • 1.1 身份驗證:logto
      • 1.2 rust 實踐:rust-by-practice
      1. GitHub Trending 周榜
      • 2.1 不新的程式語言:zig
      • 2.2 輕鬆用 API:trpc
      • 2.3 Web 工作原理:how-web-works
      • 2.4 廣告攔截:pi-hole
      • 2.5 軟體工程論文:software-papers
      1. 往期回顧

1. 本週特推

1.1 身份驗證:logto

本週 star 增長數:800+

Logto 一個驗證工具,在幾分鐘內即可構建集登入、身份驗證和使用者身份為一體的系統。它提供基於 OIDC 的身份認證服務和包含使用者名稱、電話、郵件和社交登入方式的終端體驗,並且提供多語言支援。特性:

  • 集前後端為一體的驗證方案;
  • 開箱即用,之前需要編寫的部分程式碼現在可以不用寫了;

GitHub 地址→https://github.com/logto-io/logto

1.2 rust 實踐:rust-by-practice

本週 star 增長數:950+

實踐出真知,rust-by-practice 用各類具有挑戰性的例子、練習、專案讓你在實踐中提升 Rust 編寫技能,從而縮短你同 Rust “老手”的距離。

GitHub 地址→https://github.com/sunface/rust-by-practice

2.1 不新的程式語言:zig

本週 star 增長數:700+

還記得上週推特一週獲得 18k+ star 的 JS 執行時專案 bun 麼?Zig 便是它的程式語言,Zig 是一個命令式、通用、靜態型別、編譯的系統程式語言。Zig 以 “強健性、最佳性以及可維護性” 為核心理念,支援編譯時泛型與反射、交叉編譯以及手動儲存器管理。

const std = @import("std");
const json = std.json;
const payload =
    \\{
    \\    "vals": {
    \\        "testing": 1,
    \\        "production": 42
    \\    },
    \\    "uptime": 9999
    \\}
;
const Config = struct {
    vals: struct { testing: u8, production: u8 },
    uptime: u64,
};
const config = x: {
    var stream = json.TokenStream.init(payload);
    const res = json.parse(Config, &stream, .{});
    // Assert no error can occur since we are
    // parsing this JSON at comptime!
    break :x res catch unreachable;
};
pub fn main() !void {
    if (config.vals.production > 50) {
        @compileError("only up to 50 supported");
    }
    std.log.info("up={d}", .{config.uptime});
}

GitHub 地址→https://github.com/ziglang/zig

2.2 輕鬆用 API:trpc

本週 star 增長數:950+

tRPC 讓你更輕鬆地構建和使用全型別安全的 API,而不需要模式或程式碼生成。部分特性:

  • 可用在生產環境;
  • 無程式碼、執行時膨脹、管道構建;
  • 輕量,DEP 為 0 且客戶端痕跡很小;
  • 易於整合到現有的專案中;
  • 支援訂閱;
  • 支援批量處理請求;

GitHub 地址→https://github.com/trpc/trpc

2.3 Web 工作原理:how-web-works

本週 star 增長數 1,050+

這是一個比較歷史悠久的科普知識了:當你敲下 www.google.com(類似於 www.baidu.com)會發生什麼呢?它包含了如何識別鍵入資訊、解析 url、檢查 HSTS 列表、DNS 查詢等等在內的 20+ 個過程。配圖是 DNS 查詢。

GitHub 地址→https://github.com/vasanthk/how-web-works

2.4 廣告攔截:pi-hole

本週 star 增長數:700+

pi-hole 是一個 DNS 漏洞,可以保護裝置免受“廣告”內容,而無需安裝任何客戶端軟體。特性:

  • 易安裝,不到十分鐘在引導下即可安裝完成;
  • 果斷攔截非必需內容;
  • 快響應,DNS 快取可加快日常瀏覽速度;
  • 輕量級,只需少量軟硬體;
  • 高顏值儀表盤,檢視日常資訊;
  • 可遮蔽 IPv4 和 IPv6 廣告;

GitHub 地址→https://github.com/pi-hole/pi-hole

2.5 軟體工程論文:software-papers

本週 star 增長數:1,250+

New software-papers 收錄了大量軟體工程相關的論壇,從計算機起源到函數語言程式設計,一起通過閱讀論文來了解軟體工程吧。

GitHub 地址→https://github.com/facundoolano/software-papers

3. 往期回顧

往期回顧:

以上為 2022 年第 29 個工作周的 GitHub Trending ?如果你 Pick 其他好玩、實用的 GitHub 專案,記得來 HelloGitHub issue 區和我們分享下喲 ?

最後,記得你在本文留言區留下你想看的主題 Repo(限公眾號),例如:AI 換頭。? 和之前的送書活動類似,留言點贊 Top3 的小夥伴(),小魚乾會努力去找 Repo 的^^

HelloGitHub 交流群現已全面開放,新增微訊號:HelloGitHub001 為好友入群,可同前端、Java、Go 等各界大佬談笑風生、切磋技術~

相關文章