Проекты на C
-
X-TRACK
Велокомпьютер с GPS на открытом коде. У него полный набор функций и аккуратный интерфейс: есть офлайн-карты, отображение маршрута и другие возможности. Смотреть на Bilibili (китайский видеохостинг)

Проекты на C#
-
ToastFish
Программа для изучения слов через уведомления Windows. Позволяет выбрать набор слов, а после занятий пройти тест.

-
XboxDownload
Помощник для загрузки игр на Xbox. Ускоряет загрузку игр и помогает сравнивать цены.

Проекты на C++
-
Plants-vs.-Zombies-Online-Battle
Сетевая игра Plants vs. Zombies по локальной сети. Обратная разработка и внедрение кода добавляют сетевой режим без исходников игры. После успешной загрузки последний уровень режима головоломок превращается в арену сетевого боя: один игрок расставляет растения для защиты, другой отправляет в атаку зомби. Проект объединяет обратную разработку, C++ и ассемблер и показывает, как расширить игру без доступа к исходному коду. Тем, кому интересна обратная разработка, будет полезно изучить исходники.

-
xpack
Библиотека для преобразования структур C++ в JSON, XML и BSON и обратно. Новички в C++ могут на её примере изучить продвинутые приёмы с макросами и базовые варианты SFINAE.
#include <iostream> #include "xpack/json.h" // 包含该头文件 struct User { int id; std::string name; XPACK(O(id, name)); // 添加宏定义XPACK在结构体定义结尾 }; int main(int argc, char *argv[]) { User u; string data = "{\"id\":12345, \"name\":\"xpack\"}"; xpack::json::decode(data, u); // json转结构体 cout<<u.id<<';'<<u.name<<endl; string json = xpack::json::encode(u); // 结构体转json cout<<json<<endl; return 0; }
Проекты на CSS
-
normalize.css
Библиотека CSS для нормализации стилей браузера. У одного и того же элемента в разных браузерах могут отличаться стандартные параметры, например цвет подчёркивания ссылки. В отличие от reset-подхода, который сбрасывает стили, normalize.css решает эту задачу мягче и эффективнее, помогая одному CSS-файлу одинаково и корректно выглядеть в разных браузерах.

Проекты на Go
-
dtm
Менеджер распределённых транзакций на Go. Он элегантно решает задачи идемпотентности, пустых компенсаций и зависших транзакций в микросервисной архитектуре, предлагая простое, быстрое и горизонтально масштабируемое решение. Клиенты доступны также для Python, PHP, Node.js и других языков.
// 具体业务微服务地址 const qsBusi = "http://localhost:8081/api/busi_saga" req := &gin.H{"amount": 30} // 微服务的载荷 // DtmServer为DTM服务的地址,是一个url saga := dtmcli.NewSaga("http://localhost:8080/api/dtmsvr"). // 添加一个TransOut的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransOutCompensate" Add(qsBusi+"/TransOut", qsBusi+"/TransOutCompensate", req). // 添加一个TransIn的子事务,正向操作为url: qsBusi+"/TransOut", 补偿操作为url: qsBusi+"/TransInCompensate" Add(qsBusi+"/TransIn", qsBusi+"/TransInCompensate", req) // 提交saga事务,dtm会完成所有的子事务/回滚所有的子事务 err := saga.Submit()
-
erda
Универсальная PaaS-платформа для компаний. Мультиоблачная архитектура на базе Kubernetes с DevOps, ориентированным на приложения, и управлением микросервисами упрощает разработку, сопровождение, мониторинг и диагностику сложных систем. Платформа снижает сложность обслуживания разрозненных инструментов, технологической основы и облачных площадок, а интерфейс у неё аккуратный и простой.

-
goim
Лёгкий высокопроизводительный сервис мгновенных сообщений и push-уведомлений с поддержкой кластеров. Написан целиком на Go; поддерживает широковещательные сообщения, рассылку по комнатам, проверку безопасности и несколько протоколов. Для асинхронной доставки сообщений используется Kafka.

-
hugo
Генератор статических сайтов на Go. Он собирает HTML-страницы и CSS из локальных файлов с контентом, после чего готовые страницы можно загрузить на сервер. Такие инструменты помогают быстро запустить сайт: выбрав подходящую тему, автор может сосредоточиться на материалах. Hugo — один из самых популярных генераторов такого типа; у него много плагинов и тем, поэтому даже без опыта программирования можно быстро сделать блог или сайт.

-
TopList
Агрегатор главных новостей и трендов с разных сайтов. Посмотреть онлайн

Проекты на Java
-
dataease
Открытый инструмент для визуализации и анализа данных на стеке Spring Boot и Vue.js. Разнообразные графики помогают наглядно представить данные.
- Подключение к данным: реляционные БД, файлы Excel, платформы больших данных вроде Hadoop, NoSQL и другие источники.
- Отображение графиков: поддерживаются компьютеры, мобильные устройства и большие экраны.
- Создание графиков: широкий выбор типов диаграмм и быстрая сборка дашбордов перетаскиванием.
- Движок данных: прямое подключение и локальный режим.

-
guava
Набор сторонних библиотек для Java с открытым кодом от Google. В нём собраны готовые утилиты для коллекций, ввода-вывода, кэширования, многопоточности и других задач; их можно подключить к любому Java-приложению. Исходный код проекта Google также полезен для изучения.
-
Mybatis-PageHelper
Универсальный плагин пагинации для MyBatis, как пользоваться
Проекты на JavaScript
-
50projects50days
Подборка из 50 небольших фронтенд-проектов на HTML, CSS и JS. В каждом есть исходники веб-страницы и демонстрация результата; это проекты начального уровня с открытым кодом. Новичкам они помогут увидеть, чем интересен фронтенд, а простой код снизит порог входа. И даже опытных разработчиков результат какой-нибудь страницы может приятно удивить.

-
etherpad
Редактор форматированного текста WYSIWYG с совместной работой в реальном времени.

-
gogocode
Инструмент для упрощённой работы с абстрактным синтаксическим деревом JavaScript (AST). Он использует подходы, знакомые по синтаксису jQuery, и идею построения AST из строк, снижая порог изучения и сложность разработки. На его основе команда проекта выпустила плагин для миграции с Vue 2 на Vue 3.

-
rubick
Модульный набор инструментов с плагинами на базе Electron. Автор проекта пользовался uTools, но тот был закрытым, а ещё ему нужно было подключить внутренние инструменты компании — так появился Rubick (Рубик). Он реализует большую часть возможностей uTools, совместим со множеством его плагинов с открытым кодом и позволяет запускать нужные инструменты по мере необходимости.

-
sjcl
Криптографическая библиотека для JavaScript с открытым кодом от Стэнфордского университета. Она компактна и поддерживает разные алгоритмы шифрования и расшифровки данных.
sjcl.encrypt("password", "data") //加密数据 sjcl.decrypt("password", "encrypted-data") //解密数据
Проекты на Kotlin
-
thunderbird-android
Почтовый клиент с открытым кодом для Android.

Проекты на Python
-
bigdata_analyse
Подборка практических проектов по анализу больших данных. Здесь есть примеры анализа данных с Taobao (китайский маркетплейс), рынка аренды жилья и вакансий; к ним прилагаются код на Python, SQL и HQL и ссылки на наборы данных. Всё готово для обучения — осталось приступить.

-
JDMemberCloseAccount
Практический проект по автоматизации действий в Selenium из Python. На примере автоматического отказа от участия в программах лояльности магазинов JD.com разбираются основы Python-автоматизации и варианты её реализации.

-
OnlineJudge
Открытая система онлайн-проверки решений (OJ) от Циндаоского университета, реализованная на Django и Vue.js. Возможности:
- Развёртывание одной командой с помощью Docker.
- Два режима соревнований: ACM и OI; проверка решений в реальном времени и с задержкой.
- Наглядные графики, которые помогают быстро разобраться в результатах.
- Поддержка C/C++, Java, Python 2 и 3.
- Ограничение IP-адресов участников (CIDR ranges).

-
Pillow
Самая популярная библиотека обработки изображений для Python. Pillow появилась, поскольку PIL давно не обновлялась и с 2011 года перестала поддерживаться: энтузиасты открытого кода создали Pillow на её основе. Библиотека поддерживает множество форматов и предлагает широкие возможности обработки изображений, поэтому это отличный выбор для работы с картинками в Python.
# 安装:pip install pillow # 注意安装的版本,不同版本支持的 Python 版本也不同 from PIL import Image # 打开 jpg 图像文件 im = Image.open('hellogithub.jpg') # 转换成黑白图像 grayscale = tatras.convert('L') # 展示图像 grayscale.show()
-
tqsdk-python
Фреймворк для алгоритмической торговли на Python с открытым кодом. Небольшого объёма кода достаточно, чтобы написать торговую программу; доступны исторические и актуальные данные, тестирование стратегий, торговля на реальном рынке и графический интерфейс. Бесплатная версия показывает актуальные котировки всех фьючерсов, товарных и финансовых опционов, а также индексов SSE 50, CSI 300 и CSI 500. Платная версия охватывает больше инструментов и обеспечивает более стабильный сервис.
from tqsdk import TqApi, TqAuth, TqAccount, TargetPosTask api = TqApi(TqAccount("H海通期货", "4003242", "123456"), auth=TqAuth("信易账户", "账户密码")) # 创建 TqApi 实例, 指定交易账户 q_1910 = api.get_quote("SHFE.rb1910") # 订阅近月合约行情 t_1910 = TargetPosTask(api, "SHFE.rb1910") # 创建近月合约调仓工具 q_2001 = api.get_quote("SHFE.rb2001") # 订阅远月合约行情 t_2001 = TargetPosTask(api, "SHFE.rb2001") # 创建远月合约调仓工具 while True: api.wait_update() # 等待数据更新 spread = q_1910.last_price - q_2001.last_price # 计算近月合约-远月合约价差 print("当前价差:", spread) if spread > 250: print("价差过高: 空近月,多远月") t_1910.set_target_volume(-1) # 要求把1910合约调整为空头1手 t_2001.set_target_volume(1) # 要求把2001合约调整为多头1手 elif spread < 200: print("价差回复: 清空持仓") # 要求把 1910 和 2001合约都调整为不持仓 t_1910.set_target_volume(0) t_2001.set_target_volume(0)
Проекты на Swift
-
firefox-ios
Исходный код браузера Firefox для iOS.

-
SwifterSwift
Библиотека более чем с 500 расширениями для Swift. В ней собраны дополнительные функции, удобный синтаксис, типы данных, расширения UIKit и более производительные классы Cocoa. Она помогает разрабатывать на Swift быстрее и подходит для iOS, macOS, tvOS и других систем.
// 原来使用 UIAlertController 实现提醒的代码如下: let alert = UIAlertController(title: "测试", message: "HelloGitHub", preferredStyle: .alert) let okAction = UIAlertAction(title: "OK", style: .cancel, handler: nil) alert.addAction(okAction) present(alert, animated: true, completion: nil) // 改成 SwifterSwift 后: let alert = UIAlertController(title: "测试", message: "HelloGitHub") alert.show()
Искусственный интеллект
-
DouZero_For_HappyDouDiZhu
ИИ-помощник для карточной игры «Весёлый Доу-ди-чжу» на основе открытого фреймворка обучения с подкреплением от Kuaishou (китайская платформа коротких видео).

-
HyperLPR
Открытый фреймворк для распознавания китайских автомобильных номеров. Его можно вызывать из Python, Android, C++ и других сред; подключение несложное, точность высокая. Подойдёт для задач распознавания номерных знаков.

-
insightface
Библиотека для анализа лиц в 2D и 3D на Python. Работает на PyTorch и MXNet и использует современный метод распознавания лиц ArcFace для быстрого обнаружения и распознавания.

-
Statistical-Learning-Method_Code
Реализация на Python алгоритмов из книги «Метод статистического обучения» (Tongji Xuexi Fangfa).
Прочее
-
adarkroom
«Тёмная комната» — увлекательная текстовая приключенческая игра. Она поддерживает китайский язык и работает в браузере, на iOS и Android. В браузере прогресс автоматически сохраняется локально, а сохранения можно импортировать и экспортировать. Небольшое предупреждение: поначалу игра может показаться непонятной, поскольку события запускаются не сразу. Читайте появляющийся текст, нажмите «Подбросить дров» и подождите около 30 секунд. Если вам нравятся игры с постепенным развитием, она придётся вам по вкусу. Попробовать онлайн

-
developer-roadmap
Дорожная карта обучения для разработчиков. Она охватывает бэкенд, фронтенд, эксплуатацию и развёртывание и помогает выбрать направление обучения. Перевод на китайский

-
elasticsearch-dump
Утилита для импорта и экспорта данных Elasticsearch, подходит для резервного копирования и переноса данных.
-
freeCodeCamp
Сообщество с открытым кодом для бесплатного изучения программирования. С 2014 года оно помогло множеству людей освоить программирование; сайт на китайском запустился в 2021 году. freeCodeCamp предлагает проходить интерактивные онлайн-задания и получать помощь от активного сообщества. Новичкам советуют больше писать и запускать код, придерживаясь подхода RSA: сначала читать документацию, затем искать ответ в поисковике и только потом, если другие способы не помогли, задавать вопрос. Такая привычка помогает научиться задавать хорошие вопросы и пригодится на всю жизнь. Некоммерческая организация предоставляет бесплатные курсы и публикует исходный код сайта.

-
git-split-diffs
Консольная утилита для наглядного просмотра изменений в коде. Стандартный вывод
git diffв терминале бывает трудно читать; инструмент показывает изменения в стиле сайта GitHub и предлагает несколько тем оформления.
-
hyper
Стильный терминал на базе Electron. Внешний вид важен и при выборе инструментов: Hyper работает в Windows, Linux и macOS. Попробуйте — он сделает терминал стильным, не умаляя его возможностей.

-
nocodb
Открытый инструмент для создания умных таблиц. Сначала можно принять nocodb за настольный менеджер баз данных, но его возможности шире: он представляет данные из баз, изображения и другие материалы в виде таблиц, поддерживает командную работу, подключение рабочих процессов и открытый API. Команда может работать с данными в удобном формате, держа их под рукой. Это открытая альтернатива Airtable — сочетанию электронной таблицы и базы данных.

Открытые книги
-
CheatSheetSeries
Сборник шпаргалок OWASP по безопасности веб-приложений. Эксперты сообщества собрали распространённые угрозы и способы защиты, чтобы укрепить ваши веб-приложения. Читать онлайн

-
http-api-guide
«Руководство по проектированию HTTP API» содержит рекомендации по созданию веб-API.
-
understand_linux_process
Книга «Понимание процессов Linux».