Open Source Monthly "HelloGitHub" Issue 73

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

Introduction

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

https://github.com/521xueweihan/HelloGitHub

There are practical projects, introductory tutorials, black technology, open source books, open source projects of large factories, 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 issueUpdated on the 28th of every month

C item

1. lvgl : beautiful and easy-to-use lightweight embedded system graphics library

  • Rich graphical components: buttons, charts, pictures, etc.
  • Support a variety of input devices: touch screen, keyboard, keys, etc.
  • Minimum resource footprint: 64 kB ROM, 16 kB RAM
  • Does not depend on a specific hardware platform and can run on a variety of displays
  • Supports multiple languages: Chinese, Korean, Arabic, etc.
  • Rich and detailed examples

2. uthash : A library that provides hash tables for the C language. Since there is no dictionary-like data structure in the C language, the library provides functions such as query, insert, delete, and sort that are common to hash tables. Simple to use, only need to introduce a header file

#include "uthash.h"

struct my_struct {
    int id;            /* we'll use this field as the key */
    char name[10];
    UT_hash_handle hh; /* makes this structure hashable */
};

struct my_struct *users = NULL;

void add_user(struct my_struct *s) {
    HASH_ADD_INT( users, id, s );
}

3. warpd : A tool that replaces the mouse with the keyboard. Has a variety of operation modes such as arrow keys to move the mouse and area selection, but only supports Linux and macOS systems

C# project

4. TradingSystem : An open source transaction management system. Contains the source code of the server, PC client, and mobile client, supports Chinese interface, transaction management, printing receipts, membership management, statistical reports and other functions, suitable for restaurants, supermarkets, hotels and other fields. Please read the open source agreement carefully before use and secondary development

C++ project

5. Cytopia : Free and open source pixel wind simulation city building game

6. FileCentipede : A cross-platform file downloader written in C++ and Qt. It has a simple interface, fast download speed, multi-protocol support, and browser plug-ins for downloading video and audio from web pages

7. ydb : Yandex open source enterprise-level distributed SQL database. It has the characteristics of high availability, easy expansion, transaction, strong consistency, automatic recovery after disaster, etc. It provides a web platform for easy query and various programming language SDKs such as Go, Java, Python, and JavaScript.

CSS project

8. simple.css : An ultra-lightweight CSS framework. No new style classes are introduced, only HTML elements are set to reasonable values, so that you can build beautiful and responsive web pages using only HTML elements

Go project

9. monitor : A tiled monitoring tool. The "monitoring wall" is easy to install and configure, and all monitoring indicators are displayed in a tiled manner, which is beautiful and clear at a glance. Support Linux, macOS and Windows mainstream operating systems

10. yomo : A low-latency streaming edge computing framework. It is implemented based on the QUIC (Quick UDP Internet Connection) protocol, which effectively improves the data transmission rate and stability, and enables ultra-low latency transmission and processing of data in complex network environments. Native support for multi-regional distributed deployment mode enables end users to access nodes nearby, ensuring low latency of data transmission. Suitable for developing real-time interactive applications, such as online collaboration SaaS, Metaverse, AR/VR, cloud games, IoT, etc.

11. gorse : A recommendation system engine implemented by Go language. You can easily build a recommender system without any knowledge of recommender systems. Developers only need to import user information, material information and interactive data (such as likes, favorites, etc.) into the system, and Gorse will automatically train the model to generate recommendations for each user

12. lal : A streaming media server developed in pure Go. Complete live server, supporting a variety of common encoding formats and RTMP, RTSP, HLS and other protocols

13. Casdoor : An identity access management platform that provides a login interface. Provide user management background with Chinese interface, support multiple third-party login, single sign-on, mobile phone/email verification code, password retrieval and other functions

Java project

14. javamelody : A tool for monitoring Java, Java Web applications. Monitor indicators including HTTP requests, SQL time-consuming, method execution times, error percentage, Java memory, etc., support custom time dimensions and export reports

15. guice : A lightweight Java dependency injection framework. Dependency injection code can be written without a lot of template code. Makes development and debugging easier and faster for individual developers in small projects

import javax.inject.Inject;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;

public class Main {
    @Inject
    private HelloWorldService service;//hello service
    
    public static void main(String[] args) {
        Main main = new Main();
        Module module = new HelloWorldModule();
        Injector injector = Guice.createInjector(module);
        injector.injectMembers(main);//injects the implementation of the service
        
        main.testGuice();
    }

    public void testGuice()
    {
        service.sayHello();//usage of the service
    }
}

16, databasir : a database model document management platform. Support automatic synchronization of database metadata and generate documents to solve problems such as untimely content updates in data model document management

17. streamx : Flink/Spark extremely fast development framework, one-stop stream data processing platform. Provide an out-of-the-box streaming big data development experience, which can manage the entire process of configuration, development, testing, deployment, monitoring, and operation and maintenance on the platform

18. stendhal : A free, open source multiplayer online adventure (MMORPG) game. The project is written in the Java language. Although the game screen is retro or 2D, it has a rich world composed of hundreds of items, monsters, NPCs, tasks and free transactions. Players can get experience and money by completing tasks, update equipment and gradually become stronger to explore more new maps. The game has been continuously maintained since 2005, and it has been played online.

JavaScript project

19. nanoid : JS library for generating random IDs

  • Small: no dependencies, only 130 bytes
  • Fast: 60% faster than UUID
  • Secure: Encrypted strong random API, available in the cluster
  • compact: it uses a larger alphabet than UUIDs
  • Ease of use: Ported to over 20 programming languages
const { nanoid } = require('nanoid');
nanoid(); //=> "U9HDHNW3BkWMEd6GV_QPa"

20. rubiks-cube : 3D Rubik's Cube made with Three.js. Support custom Rubik's cube order, try it online

21. nexe : a command-line tool that can package Node.js applications into an executable file

22. cnchar : A small Chinese character processing JS library. Support simplified Chinese pinyin, polyphonic characters, stroke count and other functions

let spell = cnchar.spell('你好');
let stroke = cnchar.stroke('你好');
console.log(spell, stroke);

23. rough : a hand-drawn style graphics library. Allows you to draw graphics in a sketch, hand-drawn-like style

const rc = rough.canvas(document.getElementById('canvas'));
rc.rectangle(10, 10, 200, 200); // x, y, width, height

Kotlin project

24. architecture-samples : Android architecture blueprint. This project is an official Android application design suggestion, showing and discussing how to design the Android application architecture and ensure the testability and maintainability of the project. There is also a simple to-do application as an example for developers and beginners to learn and understand

Objective-C project

25. hammerspoon : Powerful macOS automation tool. Through this project, you can easily use Lua scripts to interact with the macOS system API, and realize functions such as operating windows, mouse, file system, and screen. Can be used to create a variety of macOS convenience tools

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "W", function()
  hs.notify.new({title="Hammerspoon", informativeText="Hello World"}):send()
end)

Python project

26. pikepdf : Python library for reading and writing PDF files

import pikepdf

with pikepdf.open('input.pdf') as pdf:
    num_pages = len(pdf.pages)
    del pdf.pages[-1]
    pdf.save('output.pdf')

27. docker-py : A library for operating Docker with Python. Docker's official Python library, which can be used to batch and automatically manage images

import docker
client = docker.from_env()
client.images.pull('nginx')
# <img 'nginx' src="">
client.containers.run("ubuntu:latest", "echo hello world")
# 'hello world\n'
client.containers.list()
# [<container '45e6d2de7c54'>, <container 'db18e4f20eaa'>, ...]

28, memray : Python's memory analyzer. It helps you analyze the memory usage of your Python application, find the cause of memory leaks, code that occupies a lot of memory, and the cause of high memory usage. Supports modes such as generating memory reports (flame graphs, tables, tree graphs) and real-time reports, as well as functions such as statistical results

  • Table report: memray table [options] <results>
  • Live report: memray run --live application.py
  • Statistical results: memray stats [options] <results>

29. pinry : An open source website for sharing pictures. Vue.js + Django and other technology stacks are used to separate the front and back ends of this project. The website displays pictures in a tiled way, supports browsing, uploading and searching pictures, and manages background, personal pages, adding tags and other functions.

30. modin : Faster, pandas-like data processing and analysis library. The bottom layer accelerates the calculation through Ray or Dask, and the upper layer is compatible with most pandas APIs. So it is very simple to use, just change one line of code to seamlessly switch from pandas to Modin, while getting faster data processing speed

# import pandas as pd
import modin.pandas as pd
import numpy as np

frame_data = np.random.randint(0, 100, size=(2**10, 2**8))
df = pd.DataFrame(frame_data)

Ruby project

31. lobsters: The source code of the lobste.rs website. A website developed with Rails, similar to Hacker News, is centered on sharing links and discussions. Can be used for secondary development of similar websites

Rust projects

32. gitv : A command-line tool for Git repository analysis and data visualization written in Rust

33. dnsguide : A tutorial on writing a DNS service from scratch in Rust

Swift project

34. WordPress-iOS : Official open source WordPress iOS client

other

35. iRedMail : Free mail server out of the box. Through this project, mail services can be quickly deployed on Linux/BSD. In addition, it also has a Web management platform, and data is stored on the server, which ensures data privacy and is easy to migrate and backup.

36. WechatMomentScreenshot : a tool for generating screenshots in the circle of friends

37. RedisInsight : The official open source Redis desktop management tool. Provides functions such as visual operation interface, monitoring, memory analysis, and management of Redis clusters

38. getwidget : Free and open source Flutter UI library. Contains more than 1000 common components to help you build Flutter applications quickly and easily

39. SmartIDE : A tool to quickly build a cloud development environment. There is no need to manually install any tools, SDKs, editors, and tedious operations such as setting environment variables. You can get the required development environment and IDE with one command, and easily realize cloud development.

40. vcard-personal-portfolio : a website used to display personal information

open source books

41. awk : Chinese translation of "AWK Programming Language"

42. tensorflow-internals : "TensorFlow Kernel Analysis" introduces its architecture, domain model, working principle and other knowledge by analyzing the TF source code. Although the 1.2 version of the explanation is outdated, it can still be used to understand the internals of well-known machine learning frameworks

43. rCore-Tutorial-Book-v3 : Write a Unix-like kernel based on RISC-V architecture from scratch in Rust language. Tsinghua University's open-source Chinese course starts with popular science from the history of computer development, and explains step by step why the operating system was born and the features that modern operating systems must have. In practice, it also starts from an empty folder, like building Lego blocks, and slowly develops the core of the operating system. The tutorial reads like a novel. read online

machine learning

44. instant-ngp : A project to accelerate the training of NeRF models. NVIDIA's open source technology takes only 5 seconds to train a fox NeRF model. That is, based on the static 2D picture, the neural network model is used to quickly train a picture that can be enlarged and is clear from any angle.

At last

If you find an interesting project on GitHub, click to share it with everyone.

The above is all the content of this issue, click to read the previous content

{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/HelloGitHub/blog/5520461