C++ Academy
15.7K subscribers
801 photos
142 videos
1 file
739 links
По всем вопросам- @workakkk

РКН: clck.ru/3FmxJF

#VRHSZ
Download Telegram
🚀 Высокопроизводительная диффузия на C++/CUDA

Librediffusion — это реализация StreamDiffusion на C++ с использованием CUDA и TensorRT. Оптимизирована для высокой производительности на современных графических процессорах, обеспечивая стабильные кадры для генерации изображений.

🚀Основные моменты:
- Поддержка моделей SDXL Turbo и SD Turbo.
- Высокая скорость: до 600 fps на RTX 5090.
- Интеграция с ossia score для удобства использования.

📌 GitHub: https://github.com/jcelerier/librediffusion

#cpp
3🔥2
🎮 Минимальный шаблон проекта SDL3

sdl3-starter-template — это базовый шаблон для разработки игр на SDL3. Он включает необходимые библиотеки и упрощает процесс создания игр, позволяя сосредоточиться на коде.

🚀Основные моменты:
- Поддержка SDL3, SDL3_image и SDL3_ttf через vcpkg
- Простая структура проекта с основным циклом игры
- Совместимость с CMake и популярными компиляторами
- Легкий старт для разработчиков игр

📌 GitHub: https://github.com/Tanner-Davison/sdl3-starter-template

#cpp
8
🚀 Ультрабыстрый алгоритм сортировки JesseSort

JesseSort использует два вставочных этапа Patience Sort с последующим слиянием, обеспечивая высокую производительность на реальных данных. Алгоритм достигает времени O(n) при наличии естественных последовательностей, что делает его эффективным для различных типов входных данных.

🚀 Основные моменты:
- Быстрее стандартных сортировок на отсортированных входах
- Поддерживает адаптивное поведение для реальных данных
- Использует два этапа вставки и слияния
- Активно развивается, с возможными улучшениями в будущем

📌 GitHub: https://github.com/lewj85/jessesort

#cpp
👍112🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔊📊 AVIL - библиотека для проверки аудио и визуализации спектров

AVIL - это инструмент на C++20 для macOS, который определяет, является ли WAV-файл транскодированным MP3, и визуализирует аудиочастоты в реальном времени в терминале. Использует AVX2 для ускоренной обработки FFT.

🚀Основные моменты:
- Обнаружение транскодирования MP3 с помощью спектрального анализа.
- Визуализация спектра и уровней громкости в реальном времени.
- Поддержка микрофонного входа с подавлением обратной связи.

📌 GitHub: https://github.com/giorgiogamba/avil

#cpp
👍5🖕3🥰1
🚀 Высокопроизводительный парсер FastParseX

FastParseX — это высокопроизводительный парсер на C++ для CSV, логов и бинарных данных. Он обеспечивает максимальную пропускную способность и минимальные накладные расходы, идеально подходя для работы с данными в реальном времени.

🚀Основные моменты:
- Поддержка параллельного парсинга и многопоточности
- Встроенная профилировка и статистика по колонкам
- Экспорт в Arrow и Parquet (Pro версия)
- Оптимизированные модули для высокой производительности
- Поддержка сжатия (gzip, xz, zstd)

📌 GitHub: https://github.com/FastParseX-dev/FastParseX

#cpp
🔥63
🧩 Упрощенная сериализация в C++ по контракту

SerializationByContract предлагает инновационный подход к сериализации и десериализации данных, используя контракты для автоматизации процессов. Вместо создания отдельных функций для сериализации и десериализации, вы определяете контракт, который управляет всем процессом.

🚀 Основные моменты:
- Автоматизация сериализации и десериализации через контракты.
- Поддержка большинства STL структур данных.
- Применение в межпроцессном взаимодействии (IPC).
- Простота интеграции пользовательских структур данных.

📌 GitHub: https://github.com/amarmer/SerializationByContract

#cpp

🚀 MAX
7❤‍🔥2🥰1😱1
🧩 Легкий IoC контейнер для C++17

Genode.IoC — это компактный и простой в использовании контейнер внедрения зависимостей для C++17. Он не требует базовых классов или интерфейсов, что делает его идеальным для легковесных проектов. Автоматическое создание объектов и управление временем жизни упрощают интеграцию.

🚀 Основные моменты:
- Одно заголовочное файл.
- Автоматическое разрешение зависимостей.
- Минимальная конфигурация и управление временем жизни.
- Поддержка синглтонов и локальных экземпляров.
- Легкая интеграция в проекты.

📌 GitHub: https://github.com/SirusDoma/Genode.IoC

#cpp
👍32🔥2
🚀 Высокопроизводительная библиотека интернирования строк на C++

Azrar::StringIndex предлагает эффективный механизм интернирования строк, создавая глобальный словарь уникальных строк. Это значительно ускоряет доступ и сравнение строк, что особенно полезно в приложениях с большим количеством идентичных строк.

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

📌 GitHub: https://github.com/kboutora/Azrar

#cpp
👍5❤‍🔥11👏1
🌍🚀 Эффективная библиотека для работы с часовыми поясами

vtz предлагает высокую производительность и простой API для обработки временных данных. Она значительно быстрее конкурентов, обеспечивая до 60 раз более быстрые преобразования часовых поясов и парсинг временных меток, что делает её идеальным выбором для приложений с высокими требованиями к скорости и масштабируемости.

🚀Основные моменты:
- 30-60x быстрее преобразования часовых поясов.
- Эффективный алгоритм с блочной таблицей для быстрого поиска.
- Совместимость с std::chrono::time_zone.
- Оптимизирована для работы с большими объемами данных.

📌 GitHub: https://github.com/voladynamics/vtz

#cpp
🔥6👍2
🌟 Быстрая библиотека JSON: Glaze

Glaze — это одна из самых быстрых библиотек для работы с JSON и другими форматами, обеспечивающая высокую производительность и простоту интерфейса. Она поддерживает множество форматов, включая JSON, CBOR, YAML и другие, с акцентом на компиляцию времени и рефлексию.

🚀Основные моменты:
- Поддержка C++23 и C++26 с рефлексией для удобной работы с данными
- Высокая производительность: быстрая сериализация и десериализация
- Заголовочная библиотека без зависимости от RTTI и исключений
- Совместимость с современными компиляторами и стандартами

📌 GitHub: https://github.com/stephenberry/glaze

#cpp
9👍2
Data-Parallel Types: алгоритмы (C++26)

Библиотека «data-parallel types» для SIMD-векторов (пространство имён std::experimental, алиас stdx) предоставляет четыре специальных алгоритма: `min, max, minmax и clamp.

min, max, minmax

- min(a, b) и max(a, b) принимают два SIMD-вектора и возвращают вектор покомпонентных минимумов/максимумов.
- minmax(a, b) возвращает пару SIMD-векторов: первый — покомпонентные минимумы, второй — максимумы.
- Автор отмечает, что строка stdx::minmax(a, b) у него не компилировалась ни в GCC, ни в Clang (на момент публикации).

clamp

- stdx::clamp(v, lo, hi) применяет std::clamp к каждому элементу SIMD-вектора: значения ниже lo поднимаются до нижней границы, выше hi — опускаются до верхней.
- Показаны два примера: ограничение к диапазону INT8_MIN..INT8_MAX и к 0..UINT8_MAX; на выводах видно, как выходящие за пределы элементы прижимаются к границам.

Итог

- Для SIMD-векторов доступны привычные «минимумы/максимумы» и покомпонентный clamp.
- minmax задуман как удобный возврат пары (min/max), но в текущих компиляторах может не собираться.
- Дальше автор планирует разбирать новые возможности C++26 (в частности, контракты).

https://www.modernescpp.com/index.php/data-parallel-types-algorithms/

#cpp #programming
👍73🔥1
🧩 C++ обертка для PCRE2

pcre2cpp - это объектно-ориентированная обертка для библиотеки PCRE2, обеспечивающая удобный интерфейс для работы с регулярными выражениями. Поддерживает C++17 и C++20, упрощая процесс сопоставления и захвата результатов.

🚀 Основные моменты:
- Объектно-ориентированный интерфейс для PCRE2 10.47
- Совместимость с C++17 и C++20
- Удобное сопоставление регулярных выражений
- Встроенное захватывание результатов

📌 GitHub: https://github.com/MAIPA01/pcre2cpp

#cpp
👍3🔥32
Media is too big
VIEW IN TELEGRAM
Веселье с type erasure: делаем обертку с семантикой значения для полиморфных типов
Павел Новиков

Цель доклада — познакомить с подноготной базовой реализации type erasure (т.н. «стирание типов») в C++, а также придать уверенности при возможном взаимодействии с подобным кодом.

Используя реализацию обертки с семантикой значения в качестве примера, мы посмотрели на то, как работает type erasure, похожий на std::any.

В отличие от повсеместно используемой семантики указателя или ссылки, в данном случае обертка с семантикой значения позволяет нам обращаться с полиморфными объектами со «стертыми типами» как с обычными значениями: перемещать их, копировать, присваивать новые значения, при этом всей головной болью владения (ownership) и клонирования объекта исходного типа займётся реализация «за кулисами».

источник

#cpp #programming
2🔥2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀

В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀

Идея казалась безумной, но спортивный интерес взял верх. 💪

https://github.com/VadimBoev/FlappyBird

#cpp #programming
👍75🔥3
🧩 userver 3.0 — крупное обновление C++ фреймворка от Яндекса для highload-сервисов

Яндекс Go выпустил новую версию open source-фреймворка userver, который используется для разработки высоконагруженных и отказоустойчивых систем промышленного масштаба. В релиз вошло более 2500 улучшений.

🚀 Основные моменты:
- Chaotic — генерация boilerplate-кода по схемам данных
- userver easy — быстрый старт микросервисов с возможностью дальнейшего масштабирования
- Снижение потребления RAM и CPU в production-сценариях
- Асинхронная архитектура для высоконагруженных сервисов
- Используется в реальных сервисах Яндекса: Go, Еда, Лавка и других
- Open source и доступен сообществу на GitHub

📌 GitHub https://github.com/userver-framework

#cpp
12🔥8👍4
🎨 FusionUI: современная библиотека UI на C++23

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

🚀Основные моменты:
- Декларативные виджеты с типобезопасными стилями
- Поддержка анимаций и переходов
- Отсутствие глобального состояния для изоляции приложений
- Легкая интеграция с Vulkan и SDL3
- Кроссплатформенная: Windows, macOS, Linux

📌 GitHub: https://github.com/neilmewada/FusionUI

#cpp
👍162🔥2😁1
⚙️ clap: современный парсер аргументов командной строки для C++26

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

🚀Основные моменты:
- Поддержка значений по умолчанию и необязательных аргументов
- Краткие аргументы и комбинированные флаги
- Аннотации для описаний полей
- Автоматическое преобразование имен в kebab-case
- Простота использования с рефлексией

📌 GitHub: https://github.com/nathan-baggs/clap

#cpp
🔥8👍21
🚁Высокопроизводительная библиотека H.A.L.O. для автономных дронов

H.A.L.O. Aegis Omniverse - это библиотека на C++20, предназначенная для навигации и защиты автономных спасательных дронов в сложных условиях. Она сочетает в себе передовые методы поиска пути и тактическое избегание препятствий с реакцией менее чем за наносекунду.

🚀 Основные моменты:
- Высокая производительность с использованием JPS+ для навигации.
- 10-слойная система защиты для мгновенного реагирования.
- Оптимизация под ARM NEON и SSE4 для максимальной скорости.
- Открытый исходный код для гуманитарных миссий.

📌 GitHub: https://github.com/Nguyenidkskibidi/halo-aegis-core

#cpp
🔥9👍5🤔41
🧩 ACAV: Интерактивный просмотр AST для C/C++ проектов

ACAV (Aurora Clang AST Viewer) — это настольное приложение для визуализации абстрактных синтаксических деревьев (AST) в проектах на C, C++ и Objective-C. Оно позволяет пользователям исследовать представление исходного кода Clang, перемещаться между местоположениями кода и узлами AST, а также изучать структуру программ.

🚀 Основные моменты:
- Интерактивная визуализация AST для языков семейства C.
- Двусторонняя навигация между исходным кодом и узлами AST.
- Просмотр файлового дерева для исходных файлов и заголовков.
- Поиск по исходному коду и узлам AST.
- Поддержка нативных и контейнеризованных рабочих процессов для macOS и Linux.

📌 GitHub: https://github.com/uvic-aurora/acav

#cpp
11👍6🥰1
🚀 Высокопроизводительная библиотека CNN на C++20

MetalNet — это заголовочная библиотека для свёрточных нейронных сетей, написанная на C++20. Она обеспечивает производительность, сопоставимую с популярными фреймворками, благодаря нулевым накладным расходам, использованию DAG для автоматического дифференцирования и оптимизации под архитектуру процессора.

🚀 Основные моменты:
- Заголовочная библиотека без внешних зависимостей
- Поддержка AVX2 и OpenMP для многопоточности
- Имплицитная свёртка GEMM без избыточного использования памяти
- Оптимизированные алгоритмы для повышения производительности
- Сравнения производительности с PyTorch

📌 GitHub: https://github.com/KunwarPrabhat/CustomCNN

#cpp
🔥51