英偉達又向開源邁了一步「GitHub 熱點速覽」

削微寒發表於2024-07-23

大家是否還記得 2012 年,Linux 之父 Linus Torvalds 在一次活動中“憤怒”地表達了對英偉達閉源 Linux GPU 驅動的不滿?這個場景曾是熱門表情包,程式設計師人手一個。

Linux 開發者們苦此久已,十年後(2022),英偉達終於向開源邁出了第一步,開源了 Linux GPU 核心驅動(R515),儘管這未必與 Linus 的批評直接相關🤷,但卻標誌著英偉達對於開源的轉變。如今兩年過去了,英偉達再次向開源邁出重要一步,宣佈“全面轉向開源 GPU 核心模組”,將在即將釋出的 R560 驅動版本中採用開源核心取代閉源驅動,這一行為“利好”開發者:

  • 效能最佳化:開源驅動允許開發者直接最佳化和調整 GPU 效能,提升遊戲的執行效率和圖形表現
  • 更好支援新技術:更快地支援最新的圖形 API 和硬體特性,使遊戲開發者能充分利用最新的圖形技術。
  • 增強相容性:更容易與各種 Linux 發行版和核心版本相容,減少開發者在不同環境中適配驅動的負擔。

不過,對於普通 Linux 使用來說,要在 Linux 上玩 3A 遊戲鉅作,還為時尚早...

說回本周的開源熱搜專案,寫爬蟲最怕被“認”出來,這款更像人類行為的爬蟲框架 Crawlee 即使預設配置下也不會輕易被識別。誰說 Linux 上沒有“時尚”的軟體?Foliate 讓你在 Linux 上優雅地閱讀電子書。Meta 新開源的 CV 和 AR 應用開發 C++ 框架 Ocean,它獨立於平臺支援在各種系統上開發 AR 應用。

最後,更容易上手的終端複用器 Zellij 和更簡單的 Go WebSocket 庫,更是不容錯過。

  • 本文目錄
    • 1. 開源熱搜專案
      • 1.1 更像人類行為的爬蟲框架:Crawlee
      • 1.2 好用的 Linux 電子閱讀器:Foliate
      • 1.3 全新的 Rust 時間處理庫:jiff
      • 1.4 英偉達更新 Linux GPU 核心驅動:open-gpu-kernel-modules
      • 1.5 Meta 開源的 CV 和 AR 應用開發框架:Ocean
    • 2. HelloGitHub 熱評
      • 2.1 簡單、快速的 Go WebSocket 庫:gws
      • 2.2 更容易上手的終端複用器:Zellij
    • 3. 結尾

1. 開源熱搜專案

1.1 更像人類行為的爬蟲框架:Crawlee

主語言:PythonStar:3.1k周增長:2.5k

這是一個網頁抓取和瀏覽器自動化庫,特點是用它寫的爬蟲也不容易被識別出來(封/ban)。它提供了強大的代理池功能,可以根據實際流量自動切換和移除失效的 IP,支援無頭瀏覽器、模擬瀏覽器和 TLS 指紋等爬取行為,以及 JavaScript 渲染、螢幕截圖和 Puppeteer 等瀏覽器自動化功能。

最初開源的 crawlee NPM 包 Star 早已破萬,新開源的 Python 庫更是一週突破了 3k Star。

import asyncio

from crawlee.beautifulsoup_crawler import BeautifulSoupCrawler, BeautifulSoupCrawlingContext

async def main() -> None:
    crawler = BeautifulSoupCrawler(
        max_requests_per_crawl=10,
    )

    @crawler.router.default_handler
    async def request_handler(context: BeautifulSoupCrawlingContext) -> None:
        context.log.info(f'Processing {context.request.url} ...')
        await context.enqueue_links()

    await crawler.run(['hellogithub.com'])

if __name__ == '__main__':
    asyncio.run(main())

Python→github.com/apify/crawlee-python

JavaScript→github.com/apify/crawlee

1.2 好用的 Linux 電子閱讀器:Foliate

主語言:JavaScriptStar:5.6k周增長:300

這是一款免費、開源、適用於 Linux 的電子書閱讀工具,它提供了簡潔的介面和極佳的閱讀體驗,使用起來很像 Kindle 閱讀器,支援劃詞翻譯、新增書籤和註釋和進度滑塊,以及調整字型、間距、邊距和配色等功能,支援 EPUB、Kindle 和 PDF 等多種格式的檔案。

GitHub 地址→github.com/johnfactotum/foliate

1.3 全新的 Rust 時間處理庫:jiff

主語言:RustStar:445周增長:400

這是一個處理時間和日期的 Rust 庫,特別適合處理令人頭疼的時區和夏令時的場景。它提供了簡單易用的 API 和強大的時區支援,支援自動處理時區轉換、夏令時調整和無損地格式化和解析日期時間。該專案是知名的正規表示式工具 rg(ripgrep)作者的又一新作,目前還處於開發階段,生產環境慎用。

use jiff::{Timestamp, ToSpan};

fn main() -> Result<(), jiff::Error> {
    let time: Timestamp = "2024-07-11T01:14:00Z".parse()?;
    let zoned = time.intz("America/New_York")?.checked_add(1.month().hours(2))?;
    assert_eq!(zoned.to_string(), "2024-08-10T23:14:00-04:00[America/New_York]");
    // Or, if you want an RFC3339 formatted string:
    assert_eq!(zoned.timestamp().to_string(), "2024-08-11T03:14:00Z");
    Ok(())
}

GitHub 地址→github.com/BurntSushi/jiff

1.4 英偉達更新 Linux GPU 核心驅動:open-gpu-kernel-modules

主語言:CStar:14.6k周增長:400

該專案是英偉達(Nvidia)開源的 Linux GPU 核心驅動,本次更新標誌著英偉達又向開源邁出了重要一步,宣佈全面擁抱開源,後續 GPU 驅動將採用開源核心(之前是閉源),本次更新提供了更可靠、功能齊全的 GeForce 和工作站 Linux GPU 支援,並新增了異構記憶體管理(HMM)、機密計算和 Grace 平臺的連貫記憶體架構等功能。

GitHub 地址→github.com/NVIDIA/open-gpu-kernel-modules

1.5 Meta 開源的 CV 和 AR 應用開發框架:Ocean

主語言:C++Star:439周增長:400

該專案是 Meta(原 Facebook)開源的一個用於開發計算機視覺(CV)和擴增實境(VR)應用的 C++ 框架,它是一個獨立於平臺的開發框架,支援開發 iOS、Android、Quest、macOS、Windows 和 Linux 平臺上的應用。

#include "ocean/base/Frame.h"

using namespace Ocean;

FrameType frameType(1280u, 720u, FrameType::FORMAT_RGB24, FrameType::ORIGIN_UPPER_LEFT);
Frame frameOwningTheMemory(frameType);

GitHub 地址→github.com/facebookresearch/ocean

2. HelloGitHub 熱評

在這個章節,將會分享下本週 HelloGitHub 網站上的熱門開源專案,歡迎與我們分享你上手這些開源專案後的使用體驗。

2.1 簡單、快速的 Go WebSocket 庫:gws

主語言:Go

該專案是用 Go 編寫的 WebSocket 庫,它提供了簡潔明瞭的 API,具備高吞吐、低延遲、低記憶體佔用、穩定可靠的特點,可用於高併發場景,支援上下文接管、自定義視窗大小和廣播等功能。

專案詳情→hellogithub.com/repository/268cee8eb54b4a7189d38fb12f165177

2.2 更容易上手的終端複用器:Zellij

主語言:Rust

該專案是一個 Rust 寫的終端多路複用器,支援單視窗多標籤、分割視窗和自動恢復連線等功能。它提供了開箱即用的預設配置,同時擁有強大的外掛系統,從而深受初學者和高階使用者的喜愛。

專案詳情→hellogithub.com/repository/b3adbf4f52f94d578f1c48aafb742f05

3. 結尾

以上就是本期「GitHub 熱點速覽」的全部內容,希望你能夠在這裡找到自己感興趣的開源專案,如果你有其他好玩、有趣的 GitHub 開源專案想要分享,歡迎來 HelloGitHub 與我們交流和討論。

往期回顧

  • 將傳統應用帶入瀏覽器的開源先鋒
  • GitHub 創始人資助的開源瀏覽器

相關文章