Проекты на C
-
tmux
Терминальный мультиплексор, который заметно повышает эффективность работы.
- Предлагает мощный и удобный консольный интерфейс.
- Разделяет окно по горизонтали и вертикали.
- Позволяет свободно перемещать панели и менять их размер, а также использовать одну из четырёх готовых раскладок.
- Поддерживает копирование и вставку через несколько буферов.
- Позволяет выбирать окна, сессии и клиенты через интерактивное меню.
- И многое другое.

Проекты на C#
-
BenchmarkDotNet
Мощная библиотека для бенчмаркинга .NET.

Проекты на C++
-
CppCon2019
Коллекция слайдов и сопутствующих материалов конференции C++ 2019.
-
CppNet
Многопоточная сетевая библиотека на основе паттерна Proactor, работающая поверх TCP. В ней реализованы вызовы интерфейсов ОС, обработка обратных вызовов, таймеры, управление кешем и другие механизмы. Библиотека охватывает все детали сетевого взаимодействия от операционной системы до прикладного уровня, поэтому подходит начинающим для учёбы и практики.
- Простота: наружу выведен минимум интерфейсов, объявления которых похожи на системный socket API. Для клиентского кода добавлен лишь один тип buffer.
- Скорость: для обработки событий используются производительные epoll и IOCP, а проблему «громоподобного стада» решает ядро. У каждого соединения есть собственный пул памяти, память из которого управляется умными указателями.
- Понятная структура: библиотека разделена на три слоя — обработка событий, управление сессиями и интерфейсы; уведомления передаются вверх через обратные вызовы. Обязанности модулей чётко разграничены, а крупнейший класс содержит не более 500 строк кода.
-
dbg-macro
Журналирование — один из основных способов отладки C++. dbg-macro вдохновлён макросом rust-lang dbg и предлагает более удобную макрофункцию, чем printf и std::cout. Основные возможности:
- Красивый цветной вывод с автоматическим отключением цвета вне интерактивного терминала.
- Совместимость с C++11 и поставка в виде header-only библиотеки.
- Вывод базовых типов и контейнеров STL.
- Вывод имени и типа переменной вместе с основной информацией.
- Создание release-сборки при включённом DBG_MACRO_DISABLE.
#include <vector> #include <dbg.h> // You can use "dbg(..)" in expressions: int factorial(int n) { if (dbg(n <= 1)) { return dbg(1); } else { return dbg(n * factorial(n - 1)); } } int main() { std::string message = "hello"; dbg(message); // [example.cpp:15 (main)] message = "hello" (std::string) const int a = 2; const int b = dbg(3 * a) + 1; // [example.cpp:18 (main)] 3 * a = 6 (int) std::vector<int> numbers{b, 13, 42}; dbg(numbers); // [example.cpp:21 (main)] numbers = {7, 13, 42} (size: 3) (std::vector<int>) dbg("this line is executed"); // [example.cpp:23 (main)] this line is executed factorial(4); return 0; }
Проекты на Go
-
bigcache
Высокопроизводительная библиотека на Go для больших кешей. Результаты тестов на Ubuntu 18.04 LTS с процессором i7-6700K 4,00 ГГц и 32 ГБ оперативной памяти:
go version go version go1.13 linux/amd64 cd caches_bench; go test -bench=. -benchmem -benchtime=4s ./... -timeout 30m goos: linux goarch: amd64 pkg: github.com/allegro/bigcache/v2/caches_bench BenchmarkMapSet-8 12999889 376 ns/op 199 B/op 3 allocs/op BenchmarkConcurrentMapSet-8 4355726 1275 ns/op 337 B/op 8 allocs/op BenchmarkFreeCacheSet-8 11068976 703 ns/op 328 B/op 2 allocs/op BenchmarkBigCacheSet-8 10183717 478 ns/op 304 B/op 2 allocs/op BenchmarkMapGet-8 16536015 324 ns/op 23 B/op 1 allocs/op BenchmarkConcurrentMapGet-8 13165708 401 ns/op 24 B/op 2 allocs/op BenchmarkFreeCacheGet-8 10137682 690 ns/op 136 B/op 2 allocs/op BenchmarkBigCacheGet-8 11423854 450 ns/op 152 B/op 4 allocs/op BenchmarkBigCacheSetParallel-8 34233472 148 ns/op 317 B/op 3 allocs/op BenchmarkFreeCacheSetParallel-8 34222654 268 ns/op 350 B/op 3 allocs/op BenchmarkConcurrentMapSetParallel-8 19635688 240 ns/op 200 B/op 6 allocs/op BenchmarkBigCacheGetParallel-8 60547064 86.1 ns/op 152 B/op 4 allocs/op BenchmarkFreeCacheGetParallel-8 50701280 147 ns/op 136 B/op 3 allocs/op BenchmarkConcurrentMapGetParallel-8 27353288 175 ns/op 24 B/op 2 allocs/op PASS ok github.com/allegro/bigcache/v2/caches_bench 256.257s -
go-admin
Платформа на Go для визуализации данных и создания панелей администрирования. Основные возможности:
- Высокая продуктивность: красивую панель администрирования можно собрать за 10 минут.
- Темы: по умолчанию используется adminlte, а другие темы находятся в разработке; авторы ждут отзывов.
- Плагины: если одного плагина недостаточно, можно использовать два.
- Аутентификация: готовая к работе система RBAC.
- Поддержка фреймворков: подключается к большинству фреймворков, упрощая освоение и расширение.

-
pacgo
Терминальная игра Pac-Man, написанная на Go.

-
RedisShake
Открытый инструмент Alibaba для синхронизации данных Redis. Схема работы приведена ниже:

-
zerolog
Быстрая библиотека, созданная специально для вывода журналов в формате JSON. С zerolog больше не придётся разбирать журналы с нерегулярной структурой. Также есть менее производительный режим с красивым выводом в консоль. Пример кода:
package main import ( "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) func main() { zerolog.TimeFieldFormat = zerolog.TimeFormatUnix log.Info().Msg("hello world") } // Output: {"time":1516134303,"level":"info","message":"hello world"}
Проекты на Java
-
AutoUpdateProject
Простая в использовании и подключении библиотека для онлайн-обновления Android-приложений с несколькими вариантами интерфейса. Пример кода:
//更新库配置 UpdateConfig updateConfig = new UpdateConfig() .setDebug(true)//是否是Debug模式 .setBaseUrl("http://www.cretinzp.com/system/versioninfo")//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,配置此接口用于获取更新信息 .setMethodType(TypeConfig.METHOD_GET)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,设置请求的方法 .setDataSourceType(TypeConfig.DATA_SOURCE_TYPE_URL)//设置获取更新信息的方式 .setShowNotification(true)//配置更新的过程中是否在通知栏显示进度 .setNotificationIconRes(R.mipmap.download_icon)//配置通知栏显示的图标 .setUiThemeType(TypeConfig.UI_THEME_AUTO)//配置 UI 的样式,一种有 12 种样式可供选择 .setRequestHeaders(null)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,设置请求的请求头 .setRequestParams(null)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,设置请求的请求参数 .setCustomActivityClass(CustomActivity.class)//如果你选择的 UI 样式为 TypeConfig.UI_THEME_CUSTOM,那么你需要自定义一个 Activity 继承自 RootActivity 并参照 demo 实现功能,在此处填写自定义 Activity 的 class .setModelClass(new UpdateModel()); AppUpdateUtils.init(this, updateConfig);
-
eladmin
Система администрирования с разделёнными фронтендом и бэкендом на Spring Boot 2.1.0 и Vue. Поддерживает справочники и управление правами на данные, генерацию кода фронтенда и бэкенда одним действием, динамическую маршрутизацию меню и другие функции. В технологический стек входят нереляционная база данных Redis, инструмент тестирования API Swagger, источник данных Druid, библиотека для электронной почты javax.mail, SDK сторонних платёжных и облачных сервисов, а также шаблонизатор Freemarker. Разнообразный стек делает проект полезным практическим пособием для начинающих.

-
spring-analysis
Разбор исходного кода фреймворка Spring. Охватывает spring-core, spring-aop, spring-context, spring-task, spring-mvc и другие компоненты.
Проекты на JavaScript
-
chart-race-react
Простой и удобный React-компонент для анимации Bar Chart Race — гонки столбчатых диаграмм. Пример кода:
import ReactDOM from 'react-dom'; import BarChart from 'chart-race-react'; ReactDOM.render(<BarChart />, document.getElementById('root'));
-
fiora
Многофункциональный онлайн-чат с поддержкой разных платформ. У него лёгкий и аккуратный интерфейс, а к базовым возможностям чата добавлено озвучивание сообщений. Проект написан на TypeScript и React 16.9, отличается понятной логикой и подробными комментариями, поэтому подходит для изучения Node.js, TypeScript, React и других технологий.

-
nzh
JS-библиотека для преобразования арабских чисел в китайскую запись и обратно. Пример кода:
var nzhcn = Nzh.cn; // 使用简体中文, 另外有 Nzh.hk -- 繁体中文 nzhcn.encodeS(100111); // 转中文小写 >> 十万零一百一十一 nzhcn.encodeB(100111); // 转中文大写 >> 壹拾万零壹佰壹拾壹 nzhcn.encodeS("1.23456789e+21"); // 科学记数法字符串 >> 十二万三千四百五十六万万七千八百九十万亿 nzhcn.toMoney("100111.11"); // 转中文金额 >> 人民币壹拾万零壹佰壹拾壹元壹角壹分 -
request
Простой и удобный HTTP-клиент для JavaScript. Пример кода:
const request = require('request'); request('https://hellogithub.com', function (error, response, body) { console.error('error:', error); // 如果请求发生错误将被打印 console.log('statusCode:', response && response.statusCode); // 输出返回的状态码 console.log('body:', body); // 输出返回的 HTML }); -
SandDance
Открытая библиотека Microsoft для визуализации данных. Она сопоставляет каждую строку базы данных с отдельным элементом на экране. При взаимодействии с данными представления плавно переходят одно в другое, создавая эффектную анимацию.

Проекты на Python
-
RPA-Python
Библиотека для автоматизации действий с помощью Python. Например, она может автоматически открыть веб-страницу и сделать снимок экрана:
t.init() t.url('https://www.google.com') t.type('q', 'decentralization[enter]') t.snap('page', 'results.png') t.close()
Проекты на Ruby
-
shift
Онлайн-инструмент миграции баз данных MySQL, написанный на Ruby.

Проекты на Swift
-
Percentage
Добавляет в Swift тип для процентов и устраняет проблемы с потерей точности. Пример кода:
import Percent 10% + 5.5% //=> 15.5% -10% / 2 //=> -5%
Искусственный интеллект
-
dimensionality_reduction_alo_codes
Одиннадцать классических алгоритмов извлечения признаков и снижения размерности, реализованных на Python. К проекту приложены справочные материалы и наглядные примеры; он подходит начинающим в машинном обучении и анализе данных.

-
Ultra-Light-Fast-Generic-Face-Detector-1MB
Лёгкая модель обнаружения лиц размером 1 МБ. Она предназначена для устройств периферийных вычислений и построена на основе libfacedetection с заменой исходной сети на сжатую архитектуру.

Прочее
-
Administrative-divisions-of-China
Набор данных и программы-сборщики для пяти уровней административного деления Китая: провинциального, окружного, уездного, волостного и деревенского.
-
BigData-Notes
Вводное руководство по большим данным. Оно знакомит с основами и ключевыми понятиями распространённых технологий: Hadoop, Spark, Storm, HBase, Hive, ZooKeeper, Kafka и других.
-
cascadia-code
Открытый моноширинный шрифт Microsoft. Его интересная особенность — объединение символов в новые глифы. Результат показан ниже:

-
curlconverter
Инструмент преобразует команды curl в код на разных языках, включая Python, JavaScript, PHP, R и Go. Попробовать онлайн
-
hub
Консольная утилита для работы с GitHub, которая поддерживает большинство операций: создание и удаление удалённых репозиториев, отправку pull request, управление issue и многое другое. Частые команды:
- Создать удалённый репозиторий: hub create github-repository.
- Удалить удалённый репозиторий: hub delete github-repository.
- Создать форк проекта: hub fork.

-
vim-airline
Плагин добавляет красивую строку состояния в нижнюю часть каждого окна Vim. Отображаемая информация и внешний вид показаны ниже:

Открытые книги
-
book
Книга на английском языке «Космический Python» (Cosmic Python) о том, как организовать приложения в духе Python и управлять их сложностью.