"HelloGitHub" Issue 97

Interest is the best teacher, HelloGitHub makes you interested in programming!

Introduction

HelloGitHub shares interesting, entry-level open source projects on GitHub.

github.com/521xueweihan/HelloGitHub

There are practical projects, introductory tutorials, black technology, open source books, open source projects of major manufacturers, etc., covering a variety of programming languages ​​​​Python, Java, Go, C/C++, Swift... Let you feel the charm of open source in a short time , get interested in programming!


The following is the content of this issue|Updated on the 28th of every month

C project

1. freeswitch : a carrier-grade open source phone platform. This is an open source communication framework that supports multiple communication protocols such as SIP and WebRTC. As a multi-purpose soft switch, it can be used to create various voice and messaging services, such as enterprise phone systems, virtual call centers, video conferencing services, etc. .

2. NetHack : A Roguelike game with a long history. This is a classic Roguelike stand-alone game. The player will play a dungeon explorer to find the mysterious Yendor necklace. The game's interface is composed of ASCII characters. It has the characteristics of high degree of freedom, high difficulty, random map generation and permanent death. Players call it a game that can be played for a lifetime.

3. rt-thread : Small and beautiful IoT operating system. This is an open source Internet of Things operating system initiated by Chinese people and has excellent tailorability and scalability. It can run on very small cores on ARM Cortex-M0 chips, to medium-sized ARM Cortex-M3/4/7 systems, and even multi-core 64-bit ARM Cortex-A, MIPS32/64 and other processors of different architectures. It also provides feature-rich components and software packages to help developers quickly build embedded system products. Sharing from @Arkimidong

C# project

4. g-helper : A lightweight replacement for ASUS Ultron Center. This project is an open source alternative to ASUS Notebook Ultron Control Center (game notebook control software). It has the characteristics of a simple interface and extremely low system resource usage. It supports seamless switching of graphics card modes, adjustment of screen refresh rate, fan curve, power consumption, keyboard lighting and other functions.

5. WingetUI : Windows package manager with interface. This project is a user interface designed for commonly used command line package management tools in Windows, such as Winget, Scoop, Pip, NPM, .NET Tool, etc. It has a friendly interface, beautiful design, and supports Chinese. Through it, you can easily download, install, update and uninstall any software published on the package manager and other daily applications, such as browsers, PDF readers, etc.

C++ project

6. cppinsights : Look at C++ code from the perspective of the compiler. This is a development tool based on Clang. It can convert source code into compiler derivation results, allowing users to deeply understand the internal mechanism of the code from the perspective of the compiler. It can be used to demonstrate and explain abstract syntax trees (AST) and C++ New features of the language.

7. Stellarium : an open source astronomical simulation software. This project is a must-have artifact for astronomy enthusiasts. It can accurately simulate/display the scene of the starry sky above your head, including stars, constellations, planets, comets and other celestial bodies. It supports functions such as selecting time and location, zooming in for observation, and illustrating constellations. It provides Clients for multiple platforms including Windows, Linux, macOS, iOS and Android.

8. VideoPipe : A cross-platform video structuring and analysis framework. This is a framework for video analysis and structuring, written in C++, with few dependencies and easy to use. It is like a pipeline where each node is independent of each other and can be combined to build different types of video analysis pipelines. It is suitable for scenarios such as video structuring, image search, face recognition, and behavioral analysis in the security field (such as traffic incident detection). Sharing from @zhouzhi

Go project

9. freeze : a terminal tool for generating code images. This project can convert code snippets and terminal output into images in PNG, SVG and WebP formats. It is developed using the Go language. It is characterized by simple installation and ease of use. It supports one command to generate images, and can also generate customized images through interactive mode. .

# macOS or Linux
brew install charmbracelet/tap/freeze

# Arch Linux (btw)
pacman -S freeze

# Nix
nix-env -iA nixpkgs.charm-freeze

10. jaeger : an open source distributed link tracking platform. This project is inspired by Dapper and OpenZipkin, a distributed call chain tracking platform created and open sourced by Uber. It can be used to monitor and diagnose distributed applications (microservices). Its functions include support for multiple languages, full-link tracing, context delivery, performance indicators, visualization and alarms, etc. Sharing from @太卡

11. opengist : An open source alternative to GitHub Gist. The project stores code or text fragments in a Git repository, and users can view and modify the content through Git commands or the Web, similar to GitHub's Gist service. It is open source, self-hosted, and supports the creation of public/private snippets, syntax highlighting, code search, embedding on other websites, and modification history.

Java project

12. CompreFace : Free, open source face recognition system. This project provides REST API services for face recognition, detection, verification, head pose detection, gender and age recognition, which can be easily integrated into any system without knowing machine learning. Its backend is written in Java, face recognition is implemented based on FaceNet and InsightFace, and it also supports Docker deployment.

13. fdroidclient : Free, open source Android application store. This project is the Android client of F-Droid, an application store that specializes in collecting various open source Android software (FOSS). Most of them are free and ad-free applications. If you encounter slow resource loading, you can solve the problem by setting up a mirror source.

JavaScript project

14. cmdk : Fast, unstyled command menu React component. This project can help developers easily implement an intuitive and feature-rich command menu, similar to the interactive menu evoked by the ⌘K shortcut key, thus improving the user's interactive experience and suitable for various web applications. Shared by @Daaihang Wong

import { Command } from 'cmdk'

const CommandMenu = () => {
  return (
    <Command label="Command Menu">
      <Command.Input />
      <Command.List>
        <Command.Empty>No results found.</Command.Empty>

        <Command.Group heading="Letters">
          <Command.Item>a</Command.Item>
          <Command.Item>b</Command.Item>
          <Command.Separator />
          <Command.Item>c</Command.Item>
        </Command.Group>

        <Command.Item>Apple</Command.Item>
      </Command.List>
    </Command>
  )
}

15. outline : open source document and team knowledge base management tool. This is an online document editing and collaboration tool developed with React and Node.js. It has a beautiful interface, rich functions, is compatible with Markdown, and supports Chinese and Docker deployment. In addition, it provides clients for Windows, macOS, iOS and Android, which can be used as a private wiki or an internal documentation and knowledge base platform for small and medium-sized companies.

16. Photo-Sphere-Viewer : JavaScript library for displaying 360° sphere panorama. This is a panoramic photo viewer developed based on Three.js, providing friendly interaction and rich functions. It supports a variety of panorama formats and functions, including 2:1 panorama, hexahedral panorama, panorama tiles, display text, video panorama, etc. Shared by @wanzij

17. strapi : the world's leading open source headless CMS. This is a completely free, headless content management system developed in JavaScript/TypeScript. It has an out-of-the-box API and a friendly management panel, and comes with features such as permission management, default security, and SEO friendliness. As one of the most popular open source content management systems currently on GitHub, Strapi has become the CMS of choice for many Fortune 500 companies. Shared by @greatYe

18. tailwind-landing-page-template : Free, open source landing page template. This project is a landing page template built based on TailwindCSS, React and Next.js. It has a beautiful interface, simple code, and online design. It is suitable for quickly making company homepages, event landing pages, etc.

git clone 项目
yarn install
yarn dev
# http://localhost:3000

Kotlin project

19. breezy-weather : A minimalist Android weather application. This is a very design-focused weather app, using the Material Design design language. It is simple and clean, free with no ads, and supports Chinese. It can display various weather data such as precipitation, air quality, hourly forecast, live weather, pollen, humidity, etc. for the next hour.

Python project

20. dangerzone : A tool that converts untrusted documents into secure PDFs. This is an open source project that ensures document security. It can convert PDF files, office documents or pictures that are potentially dangerous (unknown sources, email attachments) in an isolated sandbox environment to generate safe PDF files.

21. great-tables : Use Python to create beautiful tables. This Python library can be used to create useful and beautiful tables. It provides a set of table components to help Python developers easily create beautiful data tables by combining different table parts, such as table headers, table footers, row labels (stubs), and spanner labels (spanner labels). Shared by @Ted LI

from great_tables import GT
from great_tables.data import sp500

# Define the start and end dates for the data range
start_date = "2010-06-07"
end_date = "2010-06-14"

# Filter sp500 using Pandas to dates between `start_date` and `end_date`
sp500_mini = sp500[(sp500["date"] >= start_date) & (sp500["date"] <= end_date)]

# Create a display table based on the `sp500_mini` table data
(
    GT(sp500_mini)
    .tab_header(title="S&P 500", subtitle=f"{start_date} to {end_date}")
    .fmt_currency(columns=["open", "high", "low", "close"])
    .fmt_date(columns="date", date_style="wd_m_day_year")
    .fmt_number(columns="volume", compact=True)
    .cols_hide(columns="adj_close")
)

22. python-miio : Python library for controlling Xiaomi smart home appliances. This project provides a Python library and command line tools that can be used to control devices using Xiaomi's miIO and MIoT protocols. With it, users can easily communicate with and remotely control Xiaomi smart devices, including sweeping robots, light bulbs, air purifiers, etc., which is very suitable for developers who like DIY smart home systems.

23. undetected-chromedriver : Python library that bypasses anti-crawling detection. This is an optimized Selenium WebDriver patch specifically designed to prevent browser automation from triggering anti-bot mechanisms. It can hide browser characteristics (fingerprints) and is very convenient to use, just like a third-party library for Python.

import undetected_chromedriver as uc
driver = uc.Chrome(headless=True,use_subprocess=False)
driver.get('https://nowsecure.nl')
driver.save_screenshot('nowsecure.png')

24. wereader : A comprehensive WeChat reading and note-taking assistant. This is a WeChat reading desktop client written based on PySide6. It not only supports the function of reading books, but also has a note mode, which can view all your reading notes, popular underlines and other content.

Rust project

25. grex : A command line tool that automatically generates regular expressions. Maybe it comes in handy when you don't know how to write regex. This project is a command line tool developed in Rust language. It can return corresponding regular expressions based on the sample content provided by the user. It can be used as a library or command line tool. Shared by @size_t

26. sqlx : Powerful Rust asynchronous SQL toolkit. This is a true asynchronous SQL library, completely developed in Rust language, supporting PostgreSQL, MySQL, MariaDB, and SQLite databases. It provides functions such as compile-time checking of query statements and automatic caching of statements, making the interaction between the Rust language and SQL database easy and efficient.

use sqlx::postgres::PgPoolOptions;
// use sqlx::mysql::MySqlPoolOptions;
// etc.

#[async_std::main] // Requires the `attributes` feature of `async-std`
// or #[tokio::main]
// or #[actix_web::main]
async fn main() -> Result<(), sqlx::Error> {
    // Create a connection pool
    //  for MySQL/MariaDB, use MySqlPoolOptions::new()
    //  for SQLite, use SqlitePoolOptions::new()
    //  etc.
    let pool = PgPoolOptions::new()
        .max_connections(5)
        .connect("postgres://postgres:password@localhost/test").await?;

    // Make a simple query to return the given parameter (use a question mark `?` instead of `$1` for MySQL/MariaDB)
    let row: (i64,) = sqlx::query_as("SELECT $1")
        .bind(150_i64)
        .fetch_one(&pool).await?;

    assert_eq!(row.0, 150);

    Ok(())
}

27. zero-to-production : Build an email communication service from scratch using Rust. This project is only the supporting project source code for the book "Zero To Production In Rust" and does not provide the book. This book introduces how to use Rust to build an email communication service from scratch, including the entire process of development environment configuration, continuous integration process, back-end API development, error handling, and deployment.

Swift project

28. pika : Native color picker for macOS. This is a color selection tool designed specifically for macOS. It's free, fast, and easy to use, allowing you to quickly find color values ​​on the screen.

29. reminders-menubar : minimalist macOS menu bar reminder tool. This is a small tool developed using SwiftUI that can view/remind to-do items on the macOS menu bar. It is small in size, simple in interaction, and has a refreshing interface. It supports functions such as startup, multi-language (including Chinese), menu bar display count, shortcut keys and other functions.

other

30. cat-catch : open source media sniffing browser plug-in. This browser plug-in called "Cat's Claw" can help you list the download addresses of music and video resources on the current page.

31. containers : A collection of container images for various open source software. This project is a collection of Docker containers maintained and open sourced by BitNami, including various open source software, systems and web applications. They have been optimized and vulnerability scanned, enabling one-click deployment with Docker, making it easy to deploy applications without the need for cumbersome installation and configuration processes.

docker pull bitnami/APP
docker pull bitnami/APP:[TAG]

32. ServiceLogos : A collection of super cute logos. This is a warehouse used to store various logos made by Sawaratsuki. These logos are beautifully made and cute, including the trademarks of programming languages, frameworks, tools and major social media™️.

33. ungoogled-chromium : A purer Chrome browser. This project is a browser that removes Google services from the Chrome browser, retaining full browser functionality.

34. web-activity-time-tracker : A browser plug-in that tracks your online activity time. This is an ad-free, open source browser plug-in that records your browsing time on different websites and provides intuitive statistics. It supports functions such as counting browsing time by day and hour, filtering interfering websites, and exporting data.

Open source books

35. how-to-learn-robotics : A self-study guide to robotics. This guide is designed for non-majors to teach them how to learn robotics. It contains essential knowledge, recommended introductory textbooks, practical projects, and advanced methods to help readers gradually grow into an excellent robotics engineer.

36. llm-universe : "Hands-on learning of large model application development". This project is a large model application development tutorial designed for novice developers. The content covers the introduction of the concept of large models, how to call large model APIs, building knowledge bases, building RAG (Retrieval-Augmented Generation) applications and evaluation methods, etc.

machine learning

37. langchain : A framework for building LLM applications. LLM is a large-scale deep learning model pre-trained based on big data. This project allows LLM to access new data sets without retraining. It provides various modules needed to develop LLM applications, including the functions of connecting contextual sources and reasoning based on LLM, making it easy to develop various applications supported by LLMs, such as chatbots, knowledge bases, and information extraction.

38. LLaMA-Factory : A framework specifically designed for fine-tuning LLM. This is an open source project that makes fine-tuning large language models easy. It supports multiple models such as LLaMA, Mistral, ChatGLM, etc., as well as features such as incremental pre-training, reward model training, and accuracy levels. It introduces advanced algorithms and practical fine-tuning techniques, and provides convenient monitoring tools to facilitate users to track the progress of experiments.

39. ollama : Tools for running various LLM locally. This is a tool written in Go language. It is used to install, start and manage large-scale language models locally with one command. It supports large models such as Llama 3, Gemma, Mistral, etc., and is suitable for Windows, macOS, and Linux operating systems.

40. vanna : Chat with your SQL database. This project uses LLM+RAG+ database technology to allow users to query the SQL database through natural language and use the generated SQL to answer your questions.

at last

Thanks to the friends who participated in sharing open source projects, more open source enthusiasts are welcome to come to HelloGitHub to self-recommend/recommend open source projects. If you find an interesting project on GitHub, click here to share it with everyone!

Are there any open source projects in this issue that interest you? If so, please leave a message and let me know~ If you haven’t seen enough yet, you can click to read the previous issues.

Thank you for reading. If you think the content of this issue is good, please like and share it❤️

I decided to give up on open source industrial software. Major events - OGG 1.0 was released, Huawei contributed all source code. Ubuntu 24.04 LTS was officially released. Google Python Foundation team was laid off. Google Reader was killed by the "code shit mountain". Fedora Linux 40 was officially released. A well-known game company released New regulations: Employees’ wedding gifts must not exceed 100,000 yuan. China Unicom releases the world’s first Llama3 8B Chinese version of the open source model. Pinduoduo is sentenced to compensate 5 million yuan for unfair competition. Domestic cloud input method - only Huawei has no cloud data upload security issues
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/HelloGitHub/blog/11059487
L97