史上最小 x86 Linux 模擬器「GitHub 熱點速覽 v.22.50」

語言: CN / TW / HK

本週 GitHub Trending 略顯冷清,大概是國內的人們開始在養病,而國外的人們開始過聖誕、元旦雙節。熱度不減的 ChatGPT 依舊佔據了本週大半的 GitHub 熱點專案,不過本週的特推和周榜並未重複收錄這些。不過,本週有個新的 C 專案頗為有意思,它便是特推史上最小的 x86 Linux 模擬器,主打小巧。另外個特推專案便是 Google 開源的漏洞檢測工具,也是軟體工程師的好幫手。

周榜方面,有 GitHub 常客演算法,不只是演算法還教你資料結構。搞音視訊業務的同學也許也可以看看 lossless-cut,無損搞視訊。還有 TS 的工具庫 zod,OpenAI 使用指北和跑在終端的 Copilot。

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

  • 本文目錄
    • 1. 本週特推
      • 1.1 最小的 x86 Linux 模擬器:blink
      • 1.2 漏洞掃描:osv-scanner
    • 2. GitHub Trending 周榜
      • 2.1 演算法入門:hello-algo
      • 2.2 音視訊無損剪下:lossless-cut
      • 2.3 TS 驗證庫:zod
      • 2.4 OpenAI 指南:openai-cookbook
      • 2.5 終端 Copilot:plz-cli
    • 3. 往期回顧

1. 本週特推

1.1 最小的 x86 Linux 模擬器:blink

主語言:C

New blink 是一款虛擬機器可用來跑靜態編譯的 x86-64 Linux,它適用於不同的作業系統和硬體架構。它和 qemu-x86_64 實現類似功能,除了 blink 不是一個 4 mb 的二進位制而是一個約 158 kb 的小東西之外,在某些基準測試中,比如:gcc 模擬,blink 比 Qemu 更快。由於體積小,作為折中的方案,blink 在系統整合方面不如 Qemu 豐富。

GitHub 地址→https://github.com/jart/blink

1.2 漏洞掃描:osv-scanner

主語言:Golang

New Google 開源的漏洞掃描器,資料由 https://osv.dev/ 提供。你可以用來查詢專案現有依賴是否存在漏洞。

GitHub 地址→https://github.com/google/osv-scanner

2. GitHub Trending 周榜

2.1 演算法入門:hello-algo

本週 star 增長數:1,600+主語言:Java、C++

New 《Hello 演算法》一本動畫圖解、能執行、可提問的資料結構與演算法入門書。「程式碼實踐導向」提供經典演算法的清晰實現與測試程式碼,支援多種語言、詳細註釋、皆可一鍵執行。

GitHub 地址→https://github.com/krahets/hello-algo

2.2 音視訊無損剪下:lossless-cut

本週 star 增長數:950+主語言:JavaScript

lossless-cut 旨在成為對視訊、音訊、字幕和其他媒體檔案進行快速、無損操作的跨平臺 FFmpeg GUI,主要功能是對視訊和音訊檔案進行無損修剪和剪下。你可以快速在一段視訊中提取好片段,並丟棄 gb 的資料量,無需緩慢重編碼。同理,增加音訊和字幕亦然,無需新編碼。

GitHub 地址→https://github.com/mifi/lossless-cut

2.3 TS 驗證庫:zod

本週 star 增長數:700+主語言:TypeScript

以 TypeScript 為先、帶有靜態型別推斷的 schema 模式宣告及驗證庫。這裡的模式(schema)泛指任意的資料型別,從簡單的 string 到複雜的巢狀物件。部分亮點:

  • 零依賴;
  • 可用在 Node.js 和瀏覽器;
  • 體積小:縮小壓縮後 8kb;
  • 不可變:像是 .optional()會返回一個新例項;
  • 介面簡潔;
  • 支援純 JavaScript,你不一定非要用 TS 來使用它;

以下為建立一個簡單的 string 示例:

```typescript import { z } from "zod";

// creating a schema for strings const mySchema = z.string();

// parsing mySchema.parse("tuna"); // => "tuna" mySchema.parse(12); // => throws ZodError

// "safe" parsing (doesn't throw error if validation fails) mySchema.safeParse("tuna"); // => { success: true; data: "tuna" } mySchema.safeParse(12); // => { success: false; error: ZodError } ```

GitHub 地址→https://github.com/colinhacks/zod

2.4 OpenAI 指南:openai-cookbook

本週 star 增長數:1,300+主語言:Python

前兩週很火的 ChatGPT 的組織 OpenAI 出品的使用 OpenAI API 的示例和指南,當中包含了像是明星專案 GPT-3 的 Playground。

GitHub 地址→https://github.com/openai/openai-cookbook

2.5 終端 Copilot:plz-cli

本週 star 增長數:600+主語言:Rust

New CLI 工具,依據你的描述生成對應的 shell 指令碼,號稱終端 Copilot。

```shell $ plz --help Generates bash scripts from the command line

Usage: plz [OPTIONS]

Arguments: Description of the command to execute

Options: -y, --force Run the generated program without asking for confirmation -h, --help Print help information -V, --version Print version information ```

GitHub 地址→https://github.com/m1guelpf/plz-cli

3. 往期回顧

往期回顧:

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