英偉達(dá)又向開源邁了一步「GitHub 熱點(diǎn)速覽」
共 4997字,需瀏覽 10分鐘
·
2024-07-23 08:15
大家是否還記得 2012 年,Linux 之父 Linus Torvalds 在一次活動(dòng)中“憤怒”地表達(dá)了對(duì)英偉達(dá)閉源 Linux GPU 驅(qū)動(dòng)的不滿?這個(gè)場(chǎng)景曾是熱門表情包,程序員人手一個(gè)。
Linux 開發(fā)者們苦此久已,十年后(2022),英偉達(dá)終于向開源邁出了第一步,開源了 Linux GPU 內(nèi)核驅(qū)動(dòng)(R515),盡管這未必與 Linus 的批評(píng)直接相關(guān)??,但卻標(biāo)志著英偉達(dá)對(duì)于開源的轉(zhuǎn)變。如今兩年過去了,英偉達(dá)再次向開源邁出重要一步,宣布“全面轉(zhuǎn)向開源 GPU 內(nèi)核模塊”,將在即將發(fā)布的 R560 驅(qū)動(dòng)版本中采用開源內(nèi)核取代閉源驅(qū)動(dòng),這一行為“利好”開發(fā)者:
-
性能優(yōu)化:開源驅(qū)動(dòng)允許開發(fā)者直接優(yōu)化和調(diào)整 GPU 性能,提升游戲的運(yùn)行效率和圖形表現(xiàn) -
更好支持新技術(shù):更快地支持最新的圖形 API 和硬件特性,使游戲開發(fā)者能充分利用最新的圖形技術(shù)。 -
增強(qiáng)兼容性:更容易與各種 Linux 發(fā)行版和內(nèi)核版本兼容,減少開發(fā)者在不同環(huán)境中適配驅(qū)動(dòng)的負(fù)擔(dān)。
不過,對(duì)于普通 Linux 使用來說,要在 Linux 上玩 3A 游戲巨作,還為時(shí)尚早...
說回本周的開源熱搜項(xiàng)目,寫爬蟲最怕被“認(rèn)”出來,這款更像人類行為的爬蟲框架 Crawlee 即使默認(rèn)配置下也不會(huì)輕易被識(shí)別。誰說 Linux 上沒有“時(shí)尚”的軟件?Foliate 讓你在 Linux 上優(yōu)雅地閱讀電子書。Meta 新開源的 CV 和 AR 應(yīng)用開發(fā) C++ 框架 Ocean,它獨(dú)立于平臺(tái)支持在各種系統(tǒng)上開發(fā) AR 應(yīng)用。
最后,更容易上手的終端復(fù)用器 Zellij 和更簡單的 Go WebSocket 庫,更是不容錯(cuò)過。
1. 開源熱搜項(xiàng)目
1.1 更像人類行為的爬蟲框架:Crawlee
主語言:Python,Star:3.1k,周增長:2.5k
這是一個(gè)網(wǎng)頁抓取和瀏覽器自動(dòng)化庫,特點(diǎn)是用它寫的爬蟲也不容易被識(shí)別出來(封/ban)。它提供了強(qiáng)大的代理池功能,可以根據(jù)實(shí)際流量自動(dòng)切換和移除失效的 IP,支持無頭瀏覽器、模擬瀏覽器和 TLS 指紋等爬取行為,以及 JavaScript 渲染、屏幕截圖和 Puppeteer 等瀏覽器自動(dòng)化功能。
最初開源的 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
主語言:JavaScript,Star:5.6k,周增長:300
這是一款免費(fèi)、開源、適用于 Linux 的電子書閱讀工具,它提供了簡潔的界面和極佳的閱讀體驗(yàn),使用起來很像 Kindle 閱讀器,支持劃詞翻譯、添加書簽和注釋和進(jìn)度滑塊,以及調(diào)整字體、間距、邊距和配色等功能,支持 EPUB、Kindle 和 PDF 等多種格式的文件。
GitHub 地址→github.com/johnfactotum/foliate
1.3 全新的 Rust 時(shí)間處理庫:jiff
主語言:Rust,Star:445,周增長:400
這是一個(gè)處理時(shí)間和日期的 Rust 庫,特別適合處理令人頭疼的時(shí)區(qū)和夏令時(shí)的場(chǎng)景。它提供了簡單易用的 API 和強(qiáng)大的時(shí)區(qū)支持,支持自動(dòng)處理時(shí)區(qū)轉(zhuǎn)換、夏令時(shí)調(diào)整和無損地格式化和解析日期時(shí)間。該項(xiàng)目是知名的正則表達(dá)式工具 rg(ripgrep)作者的又一新作,目前還處于開發(fā)階段,生產(chǎn)環(huán)境慎用。
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 英偉達(dá)更新 Linux GPU 內(nèi)核驅(qū)動(dòng):open-gpu-kernel-modules
主語言:C,Star:14.6k,周增長:400
該項(xiàng)目是英偉達(dá)(Nvidia)開源的 Linux GPU 內(nèi)核驅(qū)動(dòng),本次更新標(biāo)志著英偉達(dá)又向開源邁出了重要一步,宣布全面擁抱開源,后續(xù) GPU 驅(qū)動(dòng)將采用開源內(nèi)核(之前是閉源),本次更新提供了更可靠、功能齊全的 GeForce 和工作站 Linux GPU 支持,并新增了異構(gòu)內(nèi)存管理(HMM)、機(jī)密計(jì)算和 Grace 平臺(tái)的連貫內(nèi)存架構(gòu)等功能。
GitHub 地址→github.com/NVIDIA/open-gpu-kernel-modules
1.5 Meta 開源的 CV 和 AR 應(yīng)用開發(fā)框架:Ocean
主語言:C++,Star:439,周增長:400
該項(xiàng)目是 Meta(原 Facebook)開源的一個(gè)用于開發(fā)計(jì)算機(jī)視覺(CV)和增強(qiáng)現(xiàn)實(shí)(VR)應(yīng)用的 C++ 框架,它是一個(gè)獨(dú)立于平臺(tái)的開發(fā)框架,支持開發(fā) iOS、Android、Quest、macOS、Windows 和 Linux 平臺(tái)上的應(yīng)用。
#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 熱評(píng)
在這個(gè)章節(jié),將會(huì)分享下本周 HelloGitHub 網(wǎng)站上的熱門開源項(xiàng)目,歡迎與我們分享你上手這些開源項(xiàng)目后的使用體驗(yàn)。
2.1 簡單、快速的 Go WebSocket 庫:gws
主語言:Go
該項(xiàng)目是用 Go 編寫的 WebSocket 庫,它提供了簡潔明了的 API,具備高吞吐、低延遲、低內(nèi)存占用、穩(wěn)定可靠的特點(diǎn),可用于高并發(fā)場(chǎng)景,支持上下文接管、自定義窗口大小和廣播等功能。
項(xiàng)目詳情→hellogithub.com/repository/268cee8eb54b4a7189d38fb12f165177
2.2 更容易上手的終端復(fù)用器:Zellij
主語言:Rust
該項(xiàng)目是一個(gè) Rust 寫的終端多路復(fù)用器,支持單窗口多標(biāo)簽、分割窗口和自動(dòng)恢復(fù)連接等功能。它提供了開箱即用的默認(rèn)配置,同時(shí)擁有強(qiáng)大的插件系統(tǒng),從而深受初學(xué)者和高級(jí)用戶的喜愛。
項(xiàng)目詳情→hellogithub.com/repository/b3adbf4f52f94d578f1c48aafb742f05
3. 結(jié)尾
以上就是本期「GitHub 熱點(diǎn)速覽」的全部內(nèi)容,希望你能夠在這里找到自己感興趣的開源項(xiàng)目,如果你有其他好玩、有趣的 GitHub 開源項(xiàng)目想要分享,歡迎來 HelloGitHub 與我們交流和討論。
往期回顧
- END -
