Do you remember in 2012 when Linus Torvalds, the father of Linux, "angrily" expressed his dissatisfaction with NVIDIA's closed-source Linux GPU driver at an event? This scene was a popular emoticon, and programmers had it by the handful.
Linux developers have been struggling with this for a long time, and ten years later (2022), NVIDIA finally took the first step towards open source by open sourcing a Linux GPU kernel driver (R515), which, while not necessarily directly related to Linus's criticisms 🤷, marked a shift in NVIDIA's approach to open source. Now, two years later, NVIDIA has taken another major step towards open source, announcing a "full shift to open source GPU kernel modules" that will be included in the upcoming release of the R560 driver.Open source kernel instead of closed source driversThis behavior is "good" for developers:
- Performance Optimization: Open source drivers allow developers to directly optimize and tweak GPU performance to improve the efficiency and graphical performance of the game.
- Better support for new technologies: Faster support for the latest graphics APIs and hardware features enables game developers to take full advantage of the latest graphics technologies.
- Enhanced compatibility: Easier compatibility with various Linux distributions and kernel versions, reducing the burden on developers to adapt drivers in different environments.
However, for the average Linux user, it's still too early to play 3A gaming masterpieces on Linux...
Back to this week's open source hot projects , write crawlers are most afraid of being "recognized" , this more human-like behavior of the crawler framework Crawlee even under the default configuration will not be easily recognized . Foliate lets you read e-books elegantly on Linux. Meta's new open source C++ framework for CV and AR application development, Ocean, is platform-independent and supports the development of AR applications on a variety of systems.
Last but not least, Zellij, an easier-to-use terminal multiplexer, and the simpler Go WebSocket library are not to be missed.
- Table of Contents for this article
- 1. Open source hot search project
- 1.1 A Crawler Framework for More Human-like Behavior: Crawlee
- 1.2 Good eReader for Linux: Foliate
- 1.3 The new Rust time processing library: jiff
- 1.4 NVIDIA updates Linux GPU kernel drivers: open-gpu-kernel-modules
- 1.5 Meta Open Source CV and AR Application Development Framework: Ocean
- 2. HelloGitHub Hot Reviews
- 2.1 Simple and Fast Go WebSocket Library: gws
- 2.2 A more accessible terminal multiplexer: Zellij
- 3. Conclusion
- 1. Open source hot search project
1. Open source hot search project
1.1 A Crawler Framework for More Human-like Behavior: Crawlee
Main language: Python,Star:3.1k,Weekly growth: 2.5k
This is a web crawling and browser automation library, characterized by the fact that crawlers written with it are also not easily recognized (blocked/ban). It provides a powerful proxy pooling feature that automatically switches and removes invalid IPs based on actual traffic, support for crawling behaviors such as headless browsers, simulated browsers, and TLS fingerprints, as well as browser automation features such as JavaScript rendering, screenshots, and Puppeteer.
The original open source crawlee NPM package Star has already broken 10,000, and the new open source Python library even broke 3k Star in a week.
import asyncio
from crawlee.beautifulsoup_crawler import BeautifulSoupCrawler, BeautifulSoupCrawlingContext
async def main() -> None:
crawler = BeautifulSoupCrawler(
max_requests_per_crawl=10,
)
@.default_handler
async def request_handler(context: BeautifulSoupCrawlingContext) -> None:
(f'Processing {} ...')
await context.enqueue_links()
await ([''])
if __name__ == '__main__':
(main())
Python→/apify/crawlee-python
JavaScript→/apify/crawlee
1.2 Good eReader for Linux: Foliate
Main language: JavaScript,Star:5.6k,Weekly growth: 300
This is a free, open source, e-book reading tool for Linux, it provides a simple interface and a great reading experience, use it like a Kindle reader, support for scratch translation, add bookmarks and notes and progress slider, as well as adjusting fonts, spacing, margins, and color, etc., and support for EPUB, Kindle, and PDF and other formats of the file.
GitHub address →/johnfactotum/foliate
1.3 The new Rust time processing library: jiff
Main language: Rust,Star:445,Weekly growth: 400
This is a Rust library for dealing with time and date, especially suited for scenarios dealing with the headache of time zones and daylight saving time. It provides an easy-to-use API and strong time zone support, supporting automatic handling of time zone conversions, daylight saving time adjustments and lossless formatting and parsing of datetime. The project is another new work by the author of the well-known regular expression tool rg (ripgrep), which is still in the development phase and should be used with caution in production environments.
use jiff::{Timestamp, ToSpan};
fn main() -> Result<(), jiff::Error> {
let time: Timestamp = "2024-07-11T01:14:00Z".parse()?;
let zoned = ("America/New_York")?.checked_add(().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!(().to_string(), "2024-08-11T03:14:00Z");
Ok(())
}
GitHub address →/BurntSushi/jiff
1.4 NVIDIA updates Linux GPU kernel drivers: open-gpu-kernel-modules
Main language: C,Star:14.6k,Weekly growth: 400
This project is Nvidia's open source Linux GPU kernel driver. This update marks another important step towards open source, announcing that Nvidia has fully embraced open source and that subsequent GPU drivers will use an open source kernel (previously closed source). This update provides more reliable and fully featured Linux GPU support for GeForce and workstations, and adds features such as heterogeneous memory management (HMM), confidential computing, and coherent memory architectures for the Grace platform.
GitHub address →/NVIDIA/open-gpu-kernel-modules
1.5 Meta Open Source CV and AR Application Development Framework: Ocean
Main language: C++,Star:439,Weekly growth: 400
The project is Meta (formerly Facebook) open source for the development of computer vision (CV) and augmented reality (VR) applications of a C++ framework , it is a platform-independent development framework to support the development of iOS, Android, Quest, macOS, Windows and Linux platforms on the application .
#include "ocean/base/"
using namespace Ocean;
FrameType frameType(1280u, 720u, FrameType::FORMAT_RGB24, FrameType::ORIGIN_UPPER_LEFT);
Frame frameOwningTheMemory(frameType);
GitHub address →/facebookresearch/ocean
2. HelloGitHub Hot Reviews
In this section, we'll share this week's top open source projects on the HelloGitHub website, and you're welcome to share your experiences with these open source projects.
2.1 Simple and Fast Go WebSocket Library: gws
Main language: Go
This project is a WebSocket library written in Go, which provides a concise and clear API with high throughput, low latency, low memory usage, stability and reliability, and can be used in high-concurrency scenarios, with support for context takeovers, custom window sizes, and broadcasts.
Project Details→/repository/268cee8eb54b4a7189d38fb12f165177
2.2 A more accessible terminal multiplexer: Zellij
Main language: Rust
This project is a terminal multiplexer written in Rust that supports features such as single-window multi-tabbing, split-window, and automatic connection recovery. It provides out-of-the-box default configurations and also has a powerful plugin system, thus making it popular with both beginners and advanced users.
Project Details→/repository/b3adbf4f52f94d578f1c48aafb742f05
3. Conclusion
Above is the whole content of this issue of "GitHub Hot Spot", I hope you can find the open source projects you are interested in here, if you have other fun, interesting GitHub open source projects you want to share, welcome to theHelloGitHub Share and discuss with us.
Past Review
- Open Source Pioneers Bringing Traditional Applications to the Browser
- Open Source Browser Funded by GitHub Founders