Проекты на C
-
libaco
Быстрая и лёгкая библиотека асимметричных корутин на C. Документация на китайском. Особенности проекта:
- Библиотека корутин на C для промышленного применения.
- Реализация ядра занимает менее 700 строк кода и включает все основные функции библиотеки корутин.
- По результатам теста на AWS c5d.large переключение контекста между корутинами занимает всего 10 нс при раздельных стеках.
- Десять миллионов одновременно работающих корутин используют лишь 2,8 ГБ физической памяти.
-
redis-3.0-annotated
Комментарии к исходному коду Redis 3.0, которые Хуан Цзяньхун написал во время работы над книгой «Проектирование и реализация Redis». Пригодятся тем, кто хочет разобраться в исходниках Redis.
Проекты на C++
-
BurstLinker
Кодировщик GIF на C++, созданный прежде всего для Android. Поддерживает распространённые алгоритмы квантования цветов и дизеринга.
Проекты на Go
-
dgraph
Бесплатная распределённая графовая база данных с открытым кодом. Для системы связей между пользователями графовая БД может подойти лучше реляционной: по утверждению автора, поиск связанных пользователей через SPARQL бывает в сотни раз быстрее SQL-запроса. В комплекте есть графический интерфейс, импорт RDF и другие необходимые инструменты. Установка:
curl https://get.dgraph.io -sSf | bash
-
git-bug
Распределённая система учёта и управления ошибками, встроенная в Git. Хранит сведения об ошибках проекта в каталоге
.git: после клонирования репозитория они доступны без отдельного хранилища. Основные команды:# 安装 go get github.com/MichaelMure/git-bug # 创建新 bug git bug new # 把 bug 推送到远程 git bug push [<remote>] # 列出现有的 bug git bug ls
-
lazygit
Git-клиент для терминала. Запускается во много раз быстрее графических клиентов и предлагает почти те же возможности. Установка:
go get github.com/jesseduffield/lazygit. Затем запуститеlazygit.
-
rclone
Аналог rsync на Go. В отличие от rsync, rclone умеет синхронизировать файлы с хранилищами разных облачных сервисов и CDN.
# 安装 $ curl https://rclone.org/install.sh | sudo bash # 例如同步本地文件夹到 AWS S3 存储桶 $ rclone sync /home/local/directory remote:bucket
Проекты на Java
-
CoolViewPager
Настраиваемый компонент ViewPager. Поддерживает автоматическое циклическое прокручивание в обе стороны с гибкими настройками, обновление интерфейса в реальном времени, настройку краевого эффекта и вертикальное перелистывание. Пример кода:
public class ActivityEdgeEffectColor extends BaseActivity { private CoolViewPager vp; private void initViewPager(){ vp = findViewById(R.id.vp); vp.setScrollMode(CoolViewPager.ScrollMode.VERTICAL); vp.setAutoScroll(true,1000); vp.setAutoScrollDirection(CoolViewPager.AutoScrollDirection.BACKWARD); vp.setInfiniteLoop(true); vp.setScrollDuration(true,600); vp.setDrawEdgeEffect(true); vp.setEdgeEffectColor(getResources().getColor(R.color.colorPrimary)); } }
-
FileDownloader
Движок загрузки файлов для Android: стабильный, эффективный, гибкий и простой в использовании. Возможности:
- Многопоточная загрузка одного файла через несколько соединений с разбиением на части.
- Высокая степень параллелизма.
- Работа в отдельном процессе или в процессе приложения.
- Автоматическое возобновление прерванной загрузки.

-
Heart-First-JavaWeb
Подробное введение в разработку на Java Web для начинающих. Разбирает вопросы и трудности, с которыми можно столкнуться при первых шагах.
Проекты на JavaScript
-
hotkeys-js
Надёжная JavaScript-библиотека для обработки нажатий клавиш и их сочетаний. Не имеет зависимостей, а после сжатия занимает около 3 КБ. Онлайн-демонстрация.
-
pacman
Игра «Пакман» на HTML5. Вся основная логика помещается в двух файлах; код чистый и снабжён комментариями. Хороший учебный проект для начинающих. Поиграть онлайн.

-
react-developer-roadmap
Схема пути изучения React: показывает, какие темы освоить, чтобы стать React-разработчиком. Есть версия на китайском.

-
react-image-process
React-компонент для обработки изображений. Поддерживает сжатие, обрезку, водяные знаки, фильтры и определение основного цвета. Онлайн-пример.
import React from "react"; import ReactDOM from "react-dom"; import ReactImageProcess from "react-image-process"; const onComplete = data => { console.log("data:", data); }; ReactDOM.render( <ReactImageProcess mode="base64" onComplete={onComplete}> <img src="YOUR_IMG_URL" /> </ReactImageProcess>, document.getElementById("root") );
Проекты на Objective-C
-
SBSAnimoji
Позволяет записывать Animoji длительностью до 60 секунд и сразу делиться записью через кнопку расширения. Подойдёт для изучения AvatarKit.

-
SGPlayer
Фреймворк медиаплеера на базе AVPlayer и FFmpeg. Возможности:
- Воспроизведение панорамного видео с обзором 360°.
- Управление обзором 360° с помощью жестов и датчиков.
- Стереоскопический режим с коррекцией искажений и хроматической аберрации.
- Поддержка iOS, macOS и tvOS.
- Аппаратное декодирование H.264 через VideoToolBox.
- Воспроизведение потокового видео по RTMP, RTSP и другим протоколам.
- И другие функции.

Проекты на Python
-
FeelUOwn
Кроссплатформенный музыкальный плеер в духе философии Unix, ориентированный прежде всего на пользователей Linux и macOS. Особенности:
- Простая установка, удобная для начинающих.
- В комплекте плагины китайских музыкальных сервисов NetEase Cloud Music, Xiami и QQ Music.
- Широкие возможности расширения и настройки.
- Основные модули хорошо документированы и покрыты тестами.

-
hue
Система с открытым кодом для работы с Apache Hadoop через веб-интерфейс. Hue позволяет взаимодействовать с кластером Hadoop в браузере, анализировать и обрабатывать данные. Основные функции:
- Визуализация данных.
- SQL-редактор с поддержкой Hive, Impala, MySQL и других систем.
- Редактирование и просмотр рабочих процессов.

-
TGmeetup
Консольная утилита для поиска, систематизации и просмотра очных технических встреч, а также записи на них. Помогает своевременно узнавать о мероприятиях.

-
tinydb
Небольшая NoSQL-база данных на чистом Python, которая хранит данные в JSON-файле. Как и SQLite, не требует внешнего сервера, но, в отличие от неё, не использует реляционную модель. Подходит для настольных и клиентских приложений, однако не рассчитана на веб-приложения и высокопроизводительные запросы. Пример простого API:
>>> from tinydb import TinyDB, Query >>> db = TinyDB('path/to/db.json') >>> User = Query() >>> db.insert({'name': 'John', 'age': 22}) >>> db.search(User.name == 'John') [{'name': 'John', 'age': 22}]
Проекты на Ruby
-
snibox
Менеджер фрагментов кода. Поддерживает фрагменты на разных языках программирования, Markdown и обычный текст. Онлайн-демонстрация.

Проекты на Swift
-
Bartinter
Компонент для управления оформлением строки состояния. Динамически меняет её цвет в зависимости от фона, чтобы содержимое оставалось читаемым.

Прочее
-
chinese-independent-developer
Список проектов независимых разработчиков из Китая.
-
Front-End-Performance-Checklist
Контрольный список производительности фронтенда, который поможет ускорить сайт. О производительности нужно думать и на стороне браузера: здесь перечислено, что стоит учитывать и проверять при проектировании и разработке фронтенда.
-
project-based-learning
Подборка руководств по программированию, в которых приложения создаются с нуля на разных языках. Практические проекты помогают изучать устройство компиляторов, операционных систем, компьютерных сетей, баз данных и другие темы. Такой подход даёт больше практики и быстрее показывает результат, чем обучение только по книгам.
-
skill-map
Открытый проект технологического сообщества Geekbang: карты навыков программиста. Участники собирают и систематизируют схемы изучения тем из IT — ИИ, фронтенда, мобильной и серверной разработки, — а также интернет-продуктов, управления ими и их продвижения. Карты помогают выстроить структуру знаний; проект также пытается предложить пути обучения и подборки полезных ресурсов.
-
system-design-primer
Подборка материалов по проектированию масштабируемых систем, изучение которого помогает стать более сильным инженером. Есть версия на китайском.
Открытые книги
-
simple_os_book
Учебный проект по основам операционных систем и их практической реализации. На базе процессора с архитектурой RISC-V создаётся небольшая, но полнофункциональная операционная система ucore под названием «Воробей».