Проекты на C++
-
playerdemo
Кроссплатформенный видеоплеер с открытым кодом для начинающих. Обладает базовыми функциями и подходит для изучения разработки проигрывателей, а также технологий работы со звуком и видео.

Проекты на Go
-
color
Библиотека для цветного вывода в консоли на Go. Поддерживает множество вариантов оформления текста, универсальный API и работу в Windows.

-
gitbatch
Консольная утилита для массового управления Git-репозиториями.

-
Modlishka
Генератор фишинговых сайтов. Создаёт сайт по заданному шаблону и записывает введённые на нём конфиденциальные данные, включая имена пользователей и пароли.

-
sqler
Инструмент для создания API на основе SQL и конфигурационного файла. В отличие от традиционных генераторов RESTful API из SQL, позволяет настраивать предварительную и последующую обработку запросов, авторизацию и другие аспекты. Команда запуска:
sqler -config=path to config file. Пример конфигурации:adduser { // 参数校验 validators { user_name_is_empty = "$input.user_name && $input.user_name.trim().length > 0" user_email_is_empty = "$input.user_email && $input.user_email.trim(' ').length > 0" user_password_is_not_ok = "$input.user_password && $input.user_password.trim(' ').length > 5" } bind { name = "$input.user_name" email = "$input.user_email" password = "$input.user_password" } methods = ["POST"] // 权限校验 authorizer = <<JS (function(){ log("use this for debugging") token = $input.http_authorization response = fetch("http://requestbin.fullcontact.com/zxpjigzx", { headers: { "Authorization": token } }) if ( response.statusCode != 200 ) { return false } return true })() JS exec = <<SQL INSERT INTO users(name, email, password, time) VALUES(:name, :email, :password, UNIX_TIMESTAMP()); SELECT * FROM users WHERE id = LAST_INSERT_ID(); SQL } -
txqr
Передаёт данные, например файлы, с помощью динамических QR-кодов.

Проекты на Java
-
DevUtils
Библиотека утилит для Android с единообразными комментариями, понятной документацией API и множеством вспомогательных классов. Компоненты сгруппированы по функциональным модулям, поэтому ими удобно пользоваться. Библиотека помогает разработчикам быстро создавать безопасные и надёжные проекты. В комплект входят часто используемые файлы ресурсов, например color.xml и layout.xml.
-
VIABUS-Architecture
Реактивная архитектура. Передаёт запросы и ответы через шину, полностью разделяя пользовательский интерфейс и бизнес-логику.

Проекты на JavaScript
-
axial3d
Анимационный эффект, похожий на страницу 404 GitHub. Выглядит интересно, подходит для разных сценариев и реализован в виде компонента. Пример кода:
<html> <head> <title>Demo - Axial3d</title> </head> <body> <script src="https://unpkg.com/axial3d"></script> <div id="axial3d"></div> <script> (function () { var options = { selector: '#axial3d', imgs: [ {src: 'https://bestvist.github.io/axial3d/public/demo1/bg.png', left: '50px', top: '10px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/2.png', left: '150px', top: '10px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/3.png', left: '50px', top: '300px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/4.png', left: '300px', top: '300px'} ] } var effect = new Axial3d(options); })() </script> </body> </html>
-
giojs
Библиотека компонентов с открытым кодом для визуализации данных на трёхмерном глобусе в браузере, построенная на Three.js. С Gio.js разработчики могут декларативно создавать собственные модели Web3D-визуализации, добавлять данные и встраивать результат в приложение как компонент. Поддерживает статический DOM, React и мини-приложения WeChat. Основные возможности:
- Простота — для создания трёхмерной визуализации на глобусе достаточно четырёх строк JavaScript.
- Настройка — богатый API Gio.js позволяет менять оформление трёхмерного глобуса.
- Современный подход — Gio.js подходит для создания интерактивных, кроссплатформенных и адаптивных трёхмерных веб-приложений.

-
gridea
Клиент для ведения статического блога, в котором можно записывать события жизни, мысли, знания, заметки и идеи. Построен на Electron и хорошо подходит для изучения разработки настольных приложений на JavaScript.

-
omi
Универсальный фреймворк веб-компонентов с открытым кодом от Tencent. Особенности:
- Официальная библиотека UI-компонентов.
- Совместимость с IE8 при использовании omio.
- Продуманная архитектура и хорошая совместимость.
- Основа на стандарте Web Components.
- И другие возможности.
import { render, WeElement, define } from 'omi' define('my-counter', class extends WeElement { static observe = true data = { count: 1 } sub = () => { this.data.count-- } add = () => { this.data.count++ } render() { return ( <div> <button onClick={this.sub}>-</button> <span>{this.data.count}</span> <button onClick={this.add}>+</button> </div> ) } }) render(<my-counter />, 'body') -
RSSHub
Лёгкий и расширяемый генератор RSS, способный превратить практически любой необычный контент в RSS-ленту. Уже поддерживает множество источников, подробности — в документации.
-
vConsole
Консольная утилита для разработки и отладки мобильных H5-приложений с открытым кодом от Tencent. Позволяет просматривать сообщения console, сетевые запросы, подключать собственные плагины и многое другое. Пример кода:
<script src="path/to/vconsole.min.js"></script> <script> // init vConsole var vConsole = new VConsole(); console.log('Hello world'); </script>
-
weapp-library
Мини-приложение с открытым кодом для бронирования книг онлайн. Связывает читателей с библиотеками и переносит выдачу книг в интернет. Отличается приятным интерфейсом и полным набором функций: регистрацией и входом, поиском книг, списками литературы и управлением заказами. Это полноценный проект с клиентской и серверной частями и подробной документацией, подходящий для обучения начинающих. Опробовать его можно, отсканировав расположенный ниже код мини-приложения:

Проекты на Objective-C
-
Karabiner-Elements
Мощная утилита для переназначения клавиш в macOS.
-
keycastr
Утилита для показа нажимаемых клавиш на экране в реальном времени.

Проекты на PHP
-
laravel-s
Готовое решение для быстрой интеграции Swoole с Laravel. Особенности:
- После подключения LaravelS не требуется PHP FPM: HTTP-сервер запускается непосредственно на Swoole.
- Код постоянно хранится в памяти, что заметно повышает производительность.
- Позволяет быстро разрабатывать сервисы WebSocket, TCP и UDP.
- Поддерживает очереди асинхронных задач, собственные процессы и задачи по расписанию, охватывая больше бизнес-сценариев.
- Предоставляет прямой доступ ко многим возможностям Swoole.
- И другие возможности.

Проекты на Python
-
awesome-python-applications
Англоязычная подборка интересных и необычных проектов на Python с открытым кодом. Уже охватывает множество областей и содержит большое количество проектов.
-
click
Сторонняя библиотека Python для быстрого создания консольных интерфейсов. Поддерживает работу через декораторы, разные типы параметров, автоматическую генерацию справки и другие возможности. Пример кода:
import click @click.command() @click.option("--count", default=1, help="Number of greetings.") @click.option("--name", prompt="Your name", help="The person to greet.") def hello(count, name): """Simple program that greets NAME for a total of COUNT times.""" for _ in range(count): click.echo("Hello, %s!" % name) if __name__ == '__main__': hello() # 下面为运行效果 $ python hello.py --count=3 Your name: Click Hello, Click! Hello, Click! Hello, Click! -
PSpider
Полнофункциональный Python-фреймворк для веб-скрейпинга с очень компактным исходным кодом. Особенности:
- Полный набор функций: загрузка, разбор и хранение данных.
- Небольшая кодовая база: исходники удобно читать, изменять и использовать для собственной разработки.
- И другие возможности.

-
ranger
Утилита для быстрого и удобного управления файлами с управлением в стиле Vim.
-
sherlock
Англоязычная утилита, которая проверяет наличие заданного имени пользователя на популярных сайтах, например GitHub и Facebook. Хотите придумать уникальное имя? Попробуйте этот инструмент.

Проекты на Swift
-
iOS-Developer-Roadmap
Англоязычная карта обучения для iOS-разработчиков.
Искусственный интеллект
-
RecommenderSystem-Paper
Подборка статей о рекомендательных системах, опубликованных на ведущих конференциях, включая AAAI и NIPS, а также некоторых отмеченных наградами работ с KDD. Помогает исследователям рекомендательных систем и представления текста следить за классическими публикациями и новейшими направлениями исследований.
-
Semantic-Segmentation-Suite
Набор компонентов для моделей семантической сегментации изображений: модели, аугментация данных, оценка точности и другие модули. Помогает исследователям быстро собирать и испытывать модели семантической сегментации, а также включает несколько передовых готовых моделей.

-
spinningup
Англоязычный образовательный ресурс от OpenAI, упрощающий изучение глубокого обучения с подкреплением. Официальный проект с доступными объяснениями и практическими примерами подходит начинающим и всем, кто интересуется этой областью.
-
the-gan-zoo
Большая коллекция материалов о генеративно-состязательных сетях (Generative Adversarial Networks, GAN). Автор собрал разнообразные применения GAN: преимущественно научные статьи и несколько проектов на GitHub. Подборка всесторонне охватывает область, а список публикаций хорошо организован, поэтому исследователи GAN могут находить в нём нужные классические работы и расширять свои знания.

-
transformers
Предварительно обученная версия мощной модели Google для представления языка, интегрированная с фреймворком PyTorch и потому более доступная. Версия на PyTorch особенно удобна для первых экспериментов начинающих. Пример кода:
import torch from pytorch_pretrained_bert import BertTokenizer, BertModel, BertForMaskedLM # Load pre-trained model tokenizer (vocabulary) tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # Tokenized input text = "Who was Jim Henson ? Jim Henson was a puppeteer" tokenized_text = tokenizer.tokenize(text) # Mask a token that we will try to predict back with `BertForMaskedLM` masked_index = 6 tokenized_text[masked_index] = '[MASK]' assert tokenized_text == ['who', 'was', 'jim', 'henson', '?', 'jim', '[MASK]', 'was', 'a', 'puppet', '##eer'] # Convert token to vocabulary indices indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text) # Define sentence A and B indices associated to 1st and 2nd sentences (see paper) segments_ids = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1] # Convert inputs to PyTorch tensors tokens_tensor = torch.tensor([indexed_tokens]) segments_tensors = torch.tensor([segments_ids])
Прочее
-
algorithm-visualizer
Интерактивный сайт для визуализации алгоритмов. Можно выбрать любой интересующий алгоритм и наглядно изучить принцип его работы и процесс выполнения.

-
html
«Стандарт HTML»: версия на китайском языке.
-
Visual-Studio-Code-Keymap-CN
Перевод официальной схемы сочетаний клавиш редактора VS Code на китайский язык.