Docker на ста строках Bash и светодиоды по Wi-Fi

Выпуск № 105 ·

Проекты на C

  1. fluent-bit

    Лёгкий и быстрый сборщик логов. В реальном времени получает данные из разных источников, обрабатывает и пересылает их, потребляя мало памяти и процессорного времени.

    fluent-bit
  2. write-a-hash-table

    Хеш-таблица на C с нуля. Учебный проект объясняет открытую адресацию и двойное хеширование на примере примерно 200 строк кода. На разбор потребуется один-два часа.

Проекты на C#

  1. ArchiSteamFarm

    Открытый сборщик карточек Steam. Утилита на C# управляет несколькими аккаунтами и автоматически получает коллекционные карточки без установки или запуска клиента Steam. Поддерживает защиту от VAC-блокировок и обмен; работает на Windows, Linux и macOS.

  2. qttabbar

    Вкладки в Проводнике Windows. Небольшая программа на C# позволяет одновременно открывать несколько папок и управлять ими во вкладках Explorer.

    qttabbar

Проекты на C++

  1. love

    Полностью бесплатный движок двумерных игр. Открытый фреймворк допускает коммерческое использование и позволяет писать игры на Lua для Windows, macOS, Linux, Android и iOS.

    love
  2. WLED

    Беспроводное управление светодиодной лентой. Веб-сервер на ESP32 и ESP8266 меняет цвет и эффекты через Wi-Fi. Доступны 100 эффектов, 50 палитр и 250 пользовательских пресетов.

    WLED

Проекты на CSS

  1. latex-css

    CSS в стиле документов LaTeX. Библиотека оформляет сайт как научный документ: предоставляет стили для теорем, определений, лемм и доказательств, а также необязательные классы для автора, подзаголовка и аннотации.

    latex-css

Проекты на Go

  1. gofakeit

    Быстрая генерация тестовых данных на Go. Библиотека создаёт случайные имена, адреса, телефоны, даты и другие значения. Китайские данные по умолчанию не генерирует, но это можно добавить собственной логикой.

    gofakeit.Name()             // Markus Moen
    gofakeit.Email()            // alaynawuckert@kozey.biz
    gofakeit.Phone()            // (570)245-7485
    gofakeit.BS()               // front-end
    gofakeit.BeerName()         // Duvel
    gofakeit.Color()            // MediumOrchid
    gofakeit.Company()          // Moen, Pagac and Wuckert
    gofakeit.CreditCardNumber() // 4287271570245748
    gofakeit.HackerPhrase()     // Connecting the array won't do anything, we need to generate the haptic COM driver!
    gofakeit.JobTitle()         // Director
    gofakeit.CurrencyShort()    // USD
  2. hertz

    Открытый HTTP-фреймворк для микросервисов на Go от ByteDance. Команда CloudWeGo создала быстрый и расширяемый инструмент для REST API, микросервисов и веб-приложений с высокой нагрузкой. Hertz широко используется внутри ByteDance и показал себя стабильным.

    hertz
  3. lima

    Linux-виртуалки на macOS без лишней настройки. Инструмент создаёт и управляет лёгкими виртуальными машинами через QEMU и встроенную виртуализацию macOS. В них можно запускать приложения Linux и контейнеры Docker, Podman и Kubernetes.

    # 安装
    brew install lima
    # 启动
    limactl start
    # 运行 Linux 命令
    lima sudo apt-get install -y neofetch
    lima neofetch
    # 运行容器
    lima nerdctl run --rm hello-world
    kubectl apply -f ...
    lima
  4. primitive

    Картинки из геометрических фигур. Консольная утилита на Go применяет алгоритмы обработки изображений, превращая любую картинку в изображение, составленное из фигур одного типа.

    primitive
  5. zap

    Быстое структурированное логирование на Go. Библиотека Uber рассчитана на частую запись логов при высокой параллельной нагрузке и превосходит по скорости многие другие Go-библиотеки логирования.

    logger, _ := zap.NewProduction()
    defer logger.Sync() // flushes buffer, if any
    sugar := logger.Sugar()
    sugar.Infow("failed to fetch URL",
      // Structured context as loosely typed key-value pairs.
      "url", url,
      "attempt", 3,
      "backoff", time.Second,
    )
    sugar.Infof("Failed to fetch URL: %s", url)
    zap

Проекты на Java

  1. async-profiler

    Профилировщик Java с низкими накладными расходами. Выборочный анализ помогает найти горячие участки кода по CPU, утечки памяти, конкуренцию за блокировки и проблемы синхронизации потоков.

    async-profiler
  2. javaparser

    Мощный парсер кода Java. Библиотека, целиком написанная на Java, разбирает, анализирует и генерирует код, представляя его абстрактным синтаксическим деревом (AST). Поддерживает версии от Java 1.0 до Java 21 и подходит для анализаторов, рефакторинга и компиляторов.

  3. kestra

    Декларативная платформа оркестрации по событиям. Java-проект упрощает запланированные и событийные рабочие процессы. Через веб-интерфейс с редактором и сотнями плагинов можно описывать надёжные процессы в YAML: микросервисы, пакетные задания, разовые скрипты, SQL-запросы и синхронизацию данных.

    kestra

Проекты на JavaScript

  1. Dexie.js

    Лёгкая библиотека для IndexedDB. JavaScript-обёртка над браузерным API упрощает хранение и поиск данных на стороне клиента. Поддерживает большие объёмы, транзакции и индексы.

    const db = new Dexie('MyDatabase');
    
    // Find some old friends
    const oldFriends = await db.friends
        .where('age').above(75)
        .toArray();
    
    // or make a new one
    await db.friends.add({
        name: 'HelloGitHub',
        age: 25,
        street: 'East 13:th Street',
        picture: await getBlob('HelloGitHub.png')
    });
  2. gitstars

    Менеджер отмеченных звёздочкой проектов GitHub. Помогает упорядочить репозитории по меткам и языкам программирования.

    gitstars
  3. jitsi-meet

    Открытая платформа видеоконференций. Сервис на WebRTC обеспечивает качественные звук и видео, поддерживает личные сообщения, поднятие руки, голосования и виртуальный фон. Работает в основных браузерах и на мобильных платформах.

    jitsi-meet
  4. mermaid

    Диаграммы из разметки, похожей на Markdown. Открытый инструмент строит блок-схемы, диаграммы последовательности, диаграммы Ганта и другие виды графики.

    mermaid
  5. semantic-release

    Автоматизация версий и публикаций. Node.js-инструмент упрощает выпуск по правилам семантического версионирования: анализирует сообщения Git-коммитов, определяет следующую версию и составляет журнал изменений.

Проекты на Kotlin

  1. ChinesePinyin-CodeCompletionHelper

    Автодополнение кода с китайскими методами ввода. Плагин для IDE JetBrains поддерживает ввод через пиньинь и уби (китайскую раскладку по форме иероглифов).

    ChinesePinyin-CodeCompletionHelper

Проекты на Python

  1. grip

    Локальный просмотр README с оформлением GitHub. Утилита отображает файлы GFM (GitHub Flavored Markdown) через Flask и GitHub Markdown API, воспроизводя их вид на GitHub.

    $ cd myrepo
    $ grip
     * Running on http://localhost:6419/
  2. ha_xiaomi_home

    Открытая интеграция Xiaomi с Home Assistant. Плагин подключает умные устройства Xiaomi IoT: обнаруживает их, синхронизирует состояние и позволяет управлять ими удалённо.

    ha_xiaomi_home
  3. pex

    Упаковка Python-проекта в один исполняемый файл. Открытый инструмент рассчитан на перенос между окружениями и развёртывание без доступа к интернету. Собирает код, все зависимости и при желании интерпретатор Python в файл .pex, который запускается без установки окружения на Linux и macOS.

    $ pex "uvicorn[standard]" -c uvicorn --inject-args 'example:app --port 8888' -ohellogithub-app.pex
    $ ./hellogithub-app.pex
    INFO:     Started server process [2014]
    INFO:     Waiting for application startup.
    INFO:     ASGI 'lifespan' protocol appears unsupported.
    INFO:     Application startup complete.
    INFO:     Uvicorn running on http://127.0.0.1:8888 (Press CTRL+C to quit)
    ^CINFO:     Shutting down
    INFO:     Finished server process [2014]
  4. runlike

    Восстановление команды запуска Docker-контейнера. Инструмент анализирует работающий контейнер и создаёт соответствующую команду docker run, включая привязки портов, тома, переменные окружения и параметры сети. Полезен для копирования, отладки и переноса контейнеров.

    $ runlike -p redis
    
    docker run \
        --name=redis \
        -e "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
        -e "REDIS_VERSION=2.8.9" \
        -e "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-2.8.9.tar.gz" \
        -e "REDIS_DOWNLOAD_SHA1=003ccdc175816e0a751919cf508f1318e54aac1e" \
        -p 0.0.0.0:6379:6379/tcp \
        --detach=true \
        myrepo/redis:7860c450dbee9878d5215595b390b9be8fa94c89 \
        redis-server --slaveof 172.31.17.84 6379
  5. viztracer

    Простой профилировщик Python. Помогает отлаживать код и искать узкие места с минимальным влиянием на скорость программы. Отслеживает временную шкалу, несколько процессов и отдельные модули, создаёт наглядный интерактивный отчёт.

    # 安装
    pip install viztracer
    # 生成分析报告
    viztracer my_script.py arg1 arg2
    # 可视化查看报告
    vizviewer result.json 
    viztracer

Проекты на Rust

  1. himalaya

    Консольный почтовый клиент на Rust. Поддерживает несколько учётных записей, отправку и получение писем, протоколы IMAP и SMTP и шифрование PGP.

    himalaya
  2. zoxide

    Более умная команда cd. Быстрая утилита на Rust вдохновлена z и autojump: ранжирует каталоги по частоте посещения и помогает перейти в наиболее вероятный. Есть нечёткий поиск и интерактивный выбор.

    zoxide

Проекты на Swift

  1. ConfettiSwiftUI

    Анимация конфетти для SwiftUI. Библиотека позволяет настраивать форму бумажек, радиус разлёта и угол взрыва.

    ConfettiSwiftUI
  2. MarkEdit

    Минималистичный редактор Markdown для macOS. Бесплатное открытое приложение весит всего 3 МБ и предлагает чистый интерфейс для письма. Предпросмотра Markdown нет: автор считает его синтаксис достаточно понятным и без него.

    MarkEdit

Искусственный интеллект

  1. garak

    Открытый сканер уязвимостей LLM от NVIDIA. Ищет проблемы безопасности и нежелательное поведение моделей: галлюцинации, утечки данных, инъекции промптов, неверные ответы, токсичный текст и обход ограничений.

    garak
  2. letta

    Фреймворк для LLM-приложений с памятью. Python-библиотека создаёт агентов с долгосрочной памятью и сохраняемым состоянием, подключая разные API языковых моделей.

    letta
  3. MagicMirror

    Простая замена лица с помощью ИИ. Лёгкое приложение работает офлайн и без GPU, позволяя одним действием примерить новую причёску или одежду.

    MagicMirror
  4. vllm

    Быстрый движок вывода и обслуживания LLM. Основан на PyTorch и CUDA; PagedAttention, оптимизация вычислительных графов и параллельная работа моделей снижают потребление памяти GPU и ускоряют вывод на нескольких видеокартах. Совместим с моделями Hugging Face, работает на GPU, CPU и TPU. Подходит для ответов в реальном времени, генерации текста и рекомендательных систем.

    from vllm import LLM
    
    prompts = ["Hello, my name is", "The capital of France is"]  # Sample prompts.
    llm = LLM(model="lmsys/vicuna-7b-v1.3")  # Create an LLM.
    outputs = llm.generate(prompts)  # Generate texts from the prompts.
    vllm
  5. zerox

    Преобразование PDF в Markdown с помощью визуальной модели. Сервис через API сначала переводит PDF или DOCX в изображения, затем отправляет их модели и объединяет результаты в один файл Markdown.

    import path from "path";
    import { zerox } from "zerox";
    
    const result = await zerox({
      filePath: path.resolve(__dirname, "./hellogithub.pdf"),
      openaiAPIKey: process.env.OPENAI_API_KEY,
    });
    zerox

Прочее

  1. awesome-low-level-design

    Подборка материалов по детальному проектированию систем. Примеры реализации, код и определения интерфейсов помогают изучить low-level design, подготовиться к собеседованию и повысить квалификацию.

    awesome-low-level-design
  2. bocker

    Основные возможности Docker примерно в ста строках Bash. Учебный проект показывает, как реализовать базовые функции контейнеров простым Shell-сценарием.

  3. docker-xiaoya

    Развёртывание Alist, Emby и Jellyfin одной командой. Готовое решение помогает собрать домашний мультимедийный центр на Linux, macOS или Windows.

    docker-xiaoya
  4. domain-driven-hexagon

    Пример предметно-ориентированного проектирования и гексагональной архитектуры. Демонстрирует лучшие практики DDD и Hexagonal Architecture для качественных, расширяемых и удобных в сопровождении приложений.

    domain-driven-hexagon
  5. Racer

    Самодельная открытая мини-машинка. Автомобиль длиной всего пять-шесть сантиметров построен на ESP32-H2. Нейросеть помогает ему распознавать цвета и реагировать на них; также машинкой можно управлять с клавиатуры.

    Racer