Проекты на C
-
smartdns
Локальный DNS-сервер. Помогает ускорить доступ к сайтам и решает другие задачи. Схема архитектуры приведена ниже:

-
xmake
Лёгкий кроссплатформенный инструмент автоматической сборки на Lua. Собирает проекты на основных платформах, прежде всего решая проблему кроссплатформенной сборки C/C++, и поддерживает совместную компиляцию с другими языками. Конфигурация проекта проста и понятна даже новичкам.
add_requires("libuv master", "ffmpeg", "zlib 1.20.*", "tbox >1.6.1") target("test") set_kind("shared") add_files("src/*.c") add_packages("libuv", "ffmpeg", "tbox", "zlib")
Проекты на C#
-
Blog.Core
Учебный курс и практический проект по созданию приложения с раздельными клиентской и серверной частями на ASP.NET Core и Vue с нуля. Материал начинается с основ .NET Core, изложен полно и последовательно; пригодится как начинающим, так и тем, у кого уже есть опыт.

-
Terminal.Gui
Библиотека для терминального интерфейса на .NET с поддержкой Windows и Linux/Unix. Упрощает создание графических интерфейсов в терминале, в том числе с управлением мышью.

Проекты на C++
-
pikiwidb
Корпоративный сервис хранения данных Redis с открытым кодом, постоянным хранением и ёмкостью в сотни гигабайт. Совместим с большинством интерфейсов Redis и помогает обойти нехватку памяти при больших объёмах данных. Как и Redis, поддерживает основное и резервное хранилище через команду slaveof, а также полную и частичную синхронизацию.
-
ThreadPool
Простая реализация пула потоков на C++11 менее чем в 100 строк кода. Пример:
// create thread pool with 4 worker threads ThreadPool pool(4); // enqueue and store future auto result = pool.enqueue([](int answer) { return answer; }, 42); // get result from future std::cout << result.get() << std::endl; -
xournalpp
Приложение для заметок и рукописных пометок в PDF на Linux, Windows и macOS. Подойдёт тем, кто любит выделять фрагменты и делать заметки при чтении. Скачать.

Проекты на Go
-
gf
Производительный многофункциональный веб-фреймворк на Go. Особенности:
- Модульная архитектура со слабой связностью.
- Множество готовых к использованию модулей.
- Простота использования и сопровождения.
- Подробная документация и примеры.
- Полная поддержка китайского языка в локализации.
- И другие возможности.

-
gods
Простая в использовании библиотека структур данных и алгоритмов для Go, готовая к работе без дополнительной настройки. Пример кода:
type Stack interface { Push(value interface{}) Pop() (value interface{}, ok bool) Peek() (value interface{}, ok bool) containers.Container // Empty() bool // Size() int // Clear() // Values() []interface{} } -
goproxy
Прокси для установки модулей Go. Помогает, когда загрузка зависимостей проекта завершается ошибкой.

-
gowp
Производительный асинхронный пул задач для Go. Простой интерфейс, возврат ошибок и приём новых задач независимо от длины очереди. Подходит для ограничения числа одновременных обращений и параллельного выполнения. Пример кода:
package main import ( "fmt" "time" "github.com/xxjwxc/gowp/workpool" ) func main() { wp := workpool.New(10) //设置最大线程数 for i := 0; i < 20; i++ { //开启20个请求 ii := i wp.Do(func() error { for j := 0; j < 10; j++ { //每次打印0-10的值 time.Sleep(1 * time.Second) } return nil }) } wp.Wait() fmt.Println("down") } -
pg_flame
Инструмент анализа производительности PostgreSQL. Представляет результаты
EXPLAIN ANALYZEв виде пламенной диаграммы.
Проекты на Java
-
SnowJena
Распределённый фреймворк ограничения частоты запросов без блокировок на основе алгоритма корзины токенов. Предлагает простой API, готов к использованию, поддерживает отказоустойчивое понижение функциональности, динамическую настройку правил и визуальный мониторинг. Пример кода:
public class AppTest { Logger logger = LoggerFactory.getLogger(getClass()); /** * 本地限流 */ @Test public void test1() { // 1.配置规则 RateLimiterRule rateLimiterRule = new RateLimiterRuleBuilder() .setLimit(1) .setPeriod(1) .setUnit(TimeUnit.SECONDS) //每秒令牌数为1 .build(); // 2.工厂模式生产限流器 RateLimiter limiter = RateLimiterFactory.of(rateLimiterRule); // 3.使用 while (true) { if (limiter.tryAcquire()) { logger.info("ok"); } } } }
Проекты на JavaScript
-
formily
Производительное решение для сложных корпоративных форм. Возможности:
- Распределённый рендеринг полей снижает нагрузку на React.
- Поддержка компонентов Ant Design и Fusion Next.
- Плавный переход между разметкой JSX и подходом на основе JSON Schema.
- Отдельное управление побочными эффектами, включая сложную связанную проверку полей.
- Поддержка разных вариантов сложной компоновки форм.

-
hoppscotch
Бесплатный инструмент с открытым кодом для отладки API на Node.js: удобный интерфейс помогает быстрее находить проблемы и повышать эффективность разработки. Знакомым с Postman назначение проекта будет понятно сразу.

-
rc-bullets
React-компонент для экранных комментариев, построенный с помощью CSS3 Animation. Демонстрация. Возможности:
- Управление комментариями: пауза, скрытие, очистка экрана.
- Настройка скорости, числа повторов, задержки показа и типа анимации.
import React, { useEffect, useState } from 'react'; import BulletScreen, { StyledBullet } from 'rc-bullets'; const headUrl='https://zerosoul.github.io/rc-bullets/assets/img/heads/girl.jpg'; export default function Demo() { // 弹幕屏幕 const [screen, setScreen] = useState(null); // 弹幕内容 const [bullet, setBullet] = useState(''); useEffect(() => { // 给页面中某个元素初始化弹幕屏幕,一般为一个大区块 let s = new BulletScreen('.screen'); // or // let s=new BulletScreen(document.querySelector('.screen)); setScreen(s); }, []); // 弹幕内容输入事件处理 const handleChange = ({ target: { value } }) => { setBullet(value); }; // 发送弹幕 const handleSend = () => { if (bullet) { // push 纯文本 screen.push(bullet); // or 使用 StyledBullet screen.push( <StyledBullet head={headUrl} msg={bullet} /> ); // or 还可以这样使用,效果等同使用 StyledBullet 组件 screen.push({msg:bullet,head:headUrl,color:"#eee" bgColor:"rgba(2,2,2,.3)"}) } }; return ( <main> <div className="screen" style={{ width: '100vw', height: '80vh' }}></div> <input value={bullet} onChange={handleChange} /> <button onClick={handleSend}>发送</button> </main> ); }
-
react-loading
Лёгкая библиотека анимированных компонентов React, готовых к использованию и поддерживающих загрузку по мере необходимости. Пример кода:
import React from 'react'; import { DisappearedLoading } from 'react-loadingg'; const Container = () => <DisappearedLoading ></DisappearedLoading>; export default Container;
-
react-text-loop
React-компонент для циклической смены текста.

Проекты на Kotlin
-
SketchyComponent
Библиотека компонентов для Android в стиле рисунка от руки. Содержит базовые фигуры и иконки, которые удобно настраивать под свои задачи. После ранее представленной библиотеки рисованных диаграмм — такой же подход к компонентам Android. Пример кода:
// 1. 创建 Sketchy 图形 val skSquareDrawable = SkSquareDrawable().apply { // 2. 设置属性 fillColor = resources.getColor(android.R.color.holo_orange_dark) } // 3. 给 View 设置背景 text.background = skSquareDrawable
Проекты на Python
-
memory_profiler
Инструмент анализа использования памяти программами на Python. Пример кода:
# 采用装饰器的方式引用,不影响现有代码 @profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a if __name__ == '__main__': my_func() # 运行命令:python -m memory_profiler example.py # 输出: Line # Mem usage Increment Line Contents ============================================== 3 @profile 4 5.97 MB 0.00 MB def my_func(): 5 13.61 MB 7.64 MB a = [1] * (10 ** 6) 6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7) 7 13.61 MB -152.59 MB del b 8 13.61 MB 0.00 MB return a -
mitmproxy
Инструмент перехвата сетевого трафика на Python. Показывает результаты в консоли и веб-интерфейсе; как библиотека Python позволяет перехватывать и изменять запросы и ответы. Ниже показан консольный интерфейс с управлением в стиле vim.

-
PySimpleGUI
Библиотека для создания GUI на Python с удобным интерфейсом поверх tkinter, Qt, Remi и WxPython. Ниже приведены пример кода и результат работы:
import PySimpleGUI as sg sg.theme('DarkAmber') # 设置主题颜色 # 界面内包含的东西 layout = [ [sg.Text('Some text on Row 1')], [sg.Text('Enter something on Row 2'), sg.InputText()], [sg.Button('Ok'), sg.Button('Cancel')] ] # 创建窗口 window = sg.Window('Window Title', layout) # 监听事件 while True: event, values = window.read() if event in (None, 'Cancel'): # 用户点击取消按钮事件 break print('You entered ', values[0]) window.close()
-
PythonPlantsVsZombies
Игра «Растения против зомби», написанная на Python. Хороший пример для изучения разработки небольших игр на Python. Порядок запуска:
1. 需要 Python 3 2. 安装依赖库:pip install pygame 3. python main.py
Проекты на Ruby
-
pghero
Сервис мониторинга производительности PostgreSQL. Помогает разобраться, как работает база данных.

Искусственный интеллект
-
AIDungeon
Текстовая игра про подземелье на основе машинного обучения. Проект показывает, как применить машинное обучение при создании игры; простой и понятный код подойдёт для подробного изучения энтузиастам ИИ.

-
face_recognition
Простая в освоении и использовании библиотека распознавания лиц. Построена на технологии глубокого обучения dlib и достигает точности 99,38% в тесте Labeled Faces in the Wild для распознавания лиц. В комплекте есть консольная утилита для распознавания лиц на изображениях в заданной папке, подробная документация и примеры применения. Библиотека работает и на Raspberry Pi, не требуя мощного оборудования, поэтому новичкам удобно знакомиться с распознаванием лиц и машинным обучением. Пример кода:
# 定位图片中的所有人脸: import face_recognition image = face_recognition.load_image_file("your_file.jpg") face_locations = face_recognition.face_locations(image) # 识别人脸关键点,包括眼睛、鼻子、嘴和下巴 import face_recognition image = face_recognition.load_image_file("your_file.jpg") face_landmarks_list = face_recognition.face_landmarks(image)
-
SSD-Pytorch
Полный проект для обнаружения объектов с простой и понятной структурой и комментариями на китайском языке. Подойдёт новичкам для обучения, как образец задачи обнаружения объектов и как основа для собственной реализации. Пример кода:
# 实例化模型:模型的具体各种参数在 Config 文件中进行配置 net = SSD(cfg) # 将模型移动到 GPU 上,cfg.DEVICE.MAINDEVICE 定义了模型所使用的主 GPU # 模型的参数更新会在主 GPU 上进行 net.to(cfg.DEVICE.MAINDEVICE) # 初始化训练器:训练器参数已通过 cfg 进行配置;也可传入参数进行配置(但不建议) trainer = Trainer(cfg, max_iter=None, batch_size=None, train_devices=None, model_save_step=None, model_save_root=None, vis = None, vis_step=None) # 训练器开始:在数据集上训练模型 trainer(net, train_dataset)
Прочее
-
clean-code-javascript
«Чистый код на JavaScript» (Clean Code JavaScript) — рекомендации по улучшению кода JS, собранные на основе многолетнего опыта автора «Чистого кода». Это именно рекомендации, а не строгие правила. Перевод на китайский.
-
pytest-chinese-doc
Перевод официальной документации фреймворка автоматизированного тестирования pytest версии 5.1.3 на китайский язык. Помимо перевода здесь есть:
- Больше примеров: код в каталоге docs разбит по главам и по возможности охватывает каждую тему.
- Дополнительные материалы: ссылки на изученные автором источники и прочитанный исходный код, отражающие ход его работы и размышлений.
-
short_url
Сервис коротких ссылок на Elixir с настраиваемыми короткими кодами. Новички могут изучить исходники и разбор принципов работы, чтобы разобраться в создании сервиса коротких ссылок и попробовать разработку веб-сервиса на Elixir. Попробовать онлайн.

-
wenyan
Язык программирования с синтаксисом классического китайского языка. Программы на нём компилируются в JavaScript, Python или Ruby. Необычный способ попробовать программировать на классическом китайском. Попробовать онлайн.

Открытые книги
-
front-end-handbook-2019
«Справочник фронтенд-разработчика 2019» (Front-End Developer Handbook 2019) — руководство по практике фронтенд-разработки для читателей с любым уровнем подготовки. Рассказывает, как изучать фронтенд и какими инструментами пользоваться в 2019 году. Читать онлайн.
-
machine-learning-systems-design
Небольшая книга о проектировании систем машинного обучения с упражнениями.