Компилятор C и музей игровых уровней

Выпуск № 71 ·

Проекты на C

  1. chibicc

    Миниатюрный компилятор C. Хотя проект задуман как учебный, он реализует большинство возможностей C11 и способен собирать проекты на сотни тысяч строк, в том числе Git и SQLite. У него понятная структура, тщательно продуманные коммиты и доступный код. Изучение компиляторов можно начать с первого коммита.

  2. h2o

    Высокопроизводительный HTTP-сервер. Использует приоритеты загрузки ресурсов и серверную отправку HTTP/2, поэтому при раздаче статических файлов заметно превосходит Nginx по производительности.

    h2o

Проекты на C#

  1. CliWrap

    Библиотека C# для запуска внешних команд. Поддерживает запуск процессов, перенаправление ввода и вывода, ожидание завершения и конвейеры. Работает в Windows, Linux и macOS.

    using CliWrap;
    
    var result = await Cli.Wrap("path/to/exe")
        .WithArguments("--foo bar")
        .WithWorkingDirectory("work/dir/path")
        .ExecuteAsync();
    
    // 输出包括:
    // -- result.ExitCode        (int)
    // -- result.StartTime       (开始时间)
    // -- result.ExitTime        (结束时间)
    // -- result.RunTime         (执行命令耗时)
    CliWrap
  2. DreamScene2

    Компактная программа живых обоев для Windows 10 и 11. Воспроизводит видео и веб-анимацию на рабочем столе.

    DreamScene2

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

  1. finalcut

    Библиотека C++ для создания текстовых пользовательских интерфейсов. Поддерживает мышь и одновременную работу с несколькими текстовыми окнами. Предлагает диалоговые окна, кнопки, флажки, переключатели, поля ввода, списки, строку состояния и другие элементы.

    finalcut
  2. vcpkg

    Менеджер пакетов C/C++ с открытым кодом от Microsoft. Консольная утилита для установки зависимостей и управления ими в Windows, Linux и macOS. Краткое руководство на китайском.

    vcpkg

Проекты на CSS

  1. magic

    Библиотека эффектной анимации на CSS3. Посмотреть онлайн.

    magic

Проекты на Go

  1. filestash

    Онлайн-менеджер файлов. Позволяет управлять через браузер файлами и данными в FTP, SFTP, Git, S3, MySQL, Dropbox и других сервисах. Поддерживает редактирование файлов, работу с изображениями, перекодирование видео, документы Office и полнотекстовый поиск.

    filestash
  2. go-chart

    Нативная библиотека диаграмм для Go. Поддерживает линейные, столбчатые и круговые диаграммы.

    package main
    import (
        "os"
        "github.com/wcharczuk/go-chart/v2"
    )
    
    func main() {
        graph := chart.Chart{
            Series: []chart.Series{
                chart.ContinuousSeries{
                    XValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0},
                    YValues: []float64{1.0, 2.0, 3.0, 4.0, 5.0},
                },
            },
        }
        f, _ := os.Create("output.png")
        defer f.Close()
        graph.Render(chart.PNG, f)
    }
    go-chart
  3. nali

    Консольная утилита для офлайн-поиска географического расположения IP-адресов и поставщиков CDN.

    $ nali 1.2.3.4
    1.2.3.4 [澳大利亚 APNIC Debogon-prefix网络]
  4. revive

    Быстрый и расширяемый линтер Go-кода. Работает быстрее golint, предлагает больше настроек и популярен среди разработчиков на Go.

    revive
  5. vitess

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

    vitess

Проекты на Java

  1. from-java-to-kotlin

    Сравнение синтаксиса Java и Kotlin, которое поможет разработчикам на Java быстро освоить Kotlin. Версия на китайском.

    from-java-to-kotlin
  2. glide

    Библиотека быстрой загрузки изображений для Android. Glide автоматически уменьшает разрешение, кеширует изображения и активно повторно использует ресурсы, сокращая работу сборщика мусора. Для загрузки и показа изображения достаточно одной строки, а для сетевых запросов можно подключить любую подходящую библиотеку.

    Glide.with(fragment).load(url).into(imageView);
    glide
  3. graal

    Высокопроизводительная многоязычная виртуальная машина с открытым кодом от Oracle. Запущенные с ней программы потребляют меньше памяти и быстрее стартуют. Поддерживает Python, Ruby, C/C++, Java и другие языки, а Polyglot API позволяет совмещать их в одной программе. На момент выпуска часть возможностей оставалась экспериментальной, поэтому в рабочих системах их следовало применять с осторожностью. Официальный сайт.

    import org.graalvm.polyglot.*;
    
    class Polyglot {
        public static void main(String[] args) {
            Context context = Context.newBuilder().allowIO(true).build();
            Value array = context.eval("python", "[1,2,42,4]");
            int result = array.getArrayElement(2).asInt();
            System.out.println(result);
        }
    }
    
    /**
     * 运行结果
     * 执行:javac Polyglot.java
     * 输出:42
     */
    graal
  4. jjwt

    Библиотека JWT (JSON Web Token) для Java и Android.

    import io.jsonwebtoken.Jwts;
    import io.jsonwebtoken.SignatureAlgorithm;
    import io.jsonwebtoken.security.Keys;
    import java.security.Key;
    
    Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
    String jws = Jwts.builder().setSubject("HelloGitHub").signWith(key).compact();
    // 得到 JWS 字符串
  5. thingsboard

    Платформа интернета вещей с полностью открытым кодом. Подключает устройства через стандартные протоколы MQTT, CoAP и HTTP; собирает, обрабатывает и визуализирует данные, а также помогает управлять устройствами. Позволяет быстро развернуть платформу интернета вещей. Её используют крупные компании в телекоммуникациях, умных городах и экологическом мониторинге.

    thingsboard

Проекты на JavaScript

  1. handle

    Китайская версия игры Wordle с иероглифами. Сыграть онлайн.

    handle
  2. noclip.website

    Цифровой музей уровней видеоигр. Содержит модели сцен из множества игр, которые можно свободно исследовать в браузере. Открыть музей.

    noclip.website
  3. summernote

    Библиотека редактора на jQuery. Позволяет создавать редакторы с отображением результата во время работы (WYSIWYG); поддерживает Bootstrap 3, 4 и 5.

    summernote
  4. ts-node

    Библиотека для прямого запуска TypeScript-кода в Node.js. Преобразует TypeScript в JavaScript во время выполнения, поэтому предварительная компиляция не требуется.

    ts-node
  5. yn

    Локальный редактор заметок Markdown для программистов. Предлагает необычные для таких приложений возможности:

    • Технические заметки: кодовые блоки можно запускать прямо в документе; JavaScript поддерживается по умолчанию, другие языки требуют настройки.
    • Вспомогательные инструменты: в документ можно встроить HTML-компоненты.
    • Схемы и графики: поддерживает разные виды графики, карты мыслей, PlantUML, Draw.io, Mermaid и ECharts.
    • Рабочие отчёты: списки задач и замена макросов помогают составлять ежедневные и еженедельные отчёты.
    yn

Проекты на Kotlin

  1. RocketX

    Плагин для ускорения сборки Android APK. Автоматически находит модули без изменений и подставляет вместо них AAR, а затем компилирует только изменённые модули.

    // app module 的 build.gradle 加入
    apply plugin: 'com.rocketx'
    
    // 在根目录的 build.gradle 加入
    buildscript {
        dependencies {
            classpath 'io.github.trycatchx:rocketx:1.0.17'
        }
    }
    依赖 AS 插件 android studio setting->plugins-> marketplace 搜索 RocketX 安装
    RocketX

Проекты на PHP

  1. codefever

    Платформа для размещения кода с открытым кодом от команды Pgyer. У неё лаконичный интерфейс, серверная часть на PHP и развёртывание одной командой через Docker.

    • Полный исходный код открыт: без скомпилированных или зашифрованных частей.
    • Сравнение версий коммитов с подсветкой изменений.
    • Защита веток для контролируемых изменений и удобного ревью кода.
    • Командная работа с ролями и правами участников.
    • Webhook для интеграции с другими системами.
    codefever
  2. PrestaShop

    Платформа электронной торговли на PHP с открытым кодом. Функциональная, простая в развёртывании и адаптированная для мобильных устройств. Внешний вид можно гибко настраивать, но готовые шаблоны для витрины платные.

    PrestaShop

Проекты на Python

  1. drf-yasg

    Библиотека для автоматической генерации документации Swagger по API Django REST Framework.

    drf-yasg
  2. Python

    Коллекция алгоритмов на Python для обучения и практики. Охватывает поиск, сортировку, структуры данных, машинное обучение, криптографию, нейросети и другие темы.

    Python
  3. python-mini-projects

    Сборник небольших скриптов на Python. Код прост, но среди примеров есть полезные задачи: добавление водяных знаков на изображения, массовое скачивание картинок, отправка писем и снимки экрана по расписанию.

  4. tstock

    Консольная утилита для просмотра динамики акций.

    tstock

Проекты на Rust

  1. ratatui

    Фреймворк на Rust для терминальных интерфейсов (TUI), выросший из ответвления tui-rs. Предлагает набор виджетов и инструментов для создания сложных интерфейсов: работает на разных платформах, быстро отрисовывает изменения и поддерживает гибкую компоновку и собственные стили.

    use crossterm::event::{self, Event};
    use ratatui::{text::Text, Frame};
    
    fn main() {
        let mut terminal = ratatui::init();
        loop {
            terminal.draw(draw).expect("failed to draw frame");
            if matches!(event::read().expect("failed to read event"), Event::Key(_)) {
                break;
            }
        }
        ratatui::restore();
    }
    
    fn draw(frame: &mut Frame) {
        let text = Text::raw("Hello World!");
        frame.render_widget(text, frame.area());
    }
    ratatui

Проекты на Swift

  1. vapor

    Популярный веб-фреймворк на Swift. Основан на неблокирующей библиотеке обработки событий SwiftNIO. Включает ORM, шаблонизатор, аутентификацию пользователей и другие модули для быстрой разработки сайтов и API. Документация на китайском.

    import Vapor
    
    let app = try Application(.detect())
    defer { app.shutdown() }
    
    app.get("hello") { req in
        return "Hello, world."
    }
    try app.run()
    vapor

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

  1. ColossalAI

    Эффективная система распределённого обучения ИИ. Помогает повысить скорость обучения и снизить затраты, чтобы быстрее обновлять алгоритмы и модели и применять большие ИИ-модели в более широком круге задач.

    ColossalAI

Прочее

  1. Arduino

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

    Arduino
  2. db-tutorial

    Руководство по базам данных. Охватывает MySQL, Redis, Elasticsearch и MongoDB: от основ до вопросов для собеседования.

    db-tutorial
  3. HowToCook

    Кулинарная книга для программистов. Очень подробные рецепты без расплывчатых мер и непонятных действий: от основных блюд до десертов.

  4. macos-web

    Онлайн-имитация macOS. Проект на Svelte воспроизводит часть работы с системой. На момент выпуска функций было немного, но проект активно развивался. Попробовать онлайн.

    macos-web
  5. pushdeer

    Сервис push-уведомлений без установки тяжёлого приложения. Доставляет собственные оперативные сообщения, предупреждения и уведомления. Можно бесплатно разместить сервер у себя или пользоваться платным онлайн-сервисом. Поддерживаются быстрые приложения, iOS, macOS и Android.

    pushdeer
  6. resume

    Шаблон резюме на одну страницу. Для использования не нужно знать синтаксис LaTeX.

    resume
  7. svg-path-editor

    Онлайн-редактор SVG. Попробовать.

    svg-path-editor
  8. teslamate

    Платформа для самостоятельного хранения журналов поездок Tesla. Собирает, хранит и показывает данные о поездках владельца; легко развёртывается через Docker.

    teslamate