C++ Academy
15.8K subscribers
776 photos
140 videos
1 file
727 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥 best it channels

РКН: clck.ru/3FmxJF

#VRHSZ
Download Telegram
🧩 Семистабильный вектор для C++

semistable::vector — это контейнер, который обеспечивает стабильность итераторов при изменении содержимого, в отличие от стандартного std::vector. Он сохраняет элементы в непрерывной области памяти и предоставляет тот же API, но с дополнительной гарантией, что итераторы остаются действительными даже после вставок и удалений.

🚀Основные моменты:
- Итераторы корректно отслеживают элементы при изменениях.
- Заголовочный-only библиотека, требует C++11 или новее.
- Поддерживает совместимость с Boost.Config.
- Имеет ограничения по потокобезопасности и обработке исключений.

📌 GitHub: https://github.com/joaquintides/semistable_vector

#cpp
👍93🥰1😱1
🚀 Parallax Runtime: GPU Acceleration for C++ Algorithms

Parallax Runtime позволяет автоматически ускорять параллельные алгоритмы C++ на любых GPU с поддержкой Vulkan без изменения кода. Это решение исключает зависимость от конкретных вендоров и CUDA, обеспечивая универсальную производительность.

🚀 Основные моменты:
- - Поддержка всех GPU с Vulkan 1.2+
- - Умное управление памятью с синхронизацией
- - Низкие накладные расходы благодаря прямому доступу к Vulkan
- - Открытый исходный код (Apache 2.0)

📌 GitHub: https://github.com/parallax-compiler/parallax-runtime

#cpp
🔥12👍74
🚀 Легкий ODBC SQL API для C++23

Lightweight — это современный обертка для ODBC, обеспечивающая быстрый доступ к базам данных. Поддерживает низкоуровневый и высокоуровневый доступ, включая удобный DataMapper для работы с записями.

🚀 Основные моменты:
- Поддержка Windows и Linux с современными компиляторами.
- Работает с Microsoft SQL Server, PostgreSQL и SQLite3.
- Высокоуровневый API для простого CRUD.
- Удобное маппирование запросов на структуры.
- Легкая работа с внешними ключами и объединениями.

📌 GitHub: https://github.com/LASTRADA-Software/Lightweight

#cpp
👍82🔥2😱1
🚀 Areg SDK: Упрощение распределенных систем на C++

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

🚀 Основные моменты:
- Автоматическое управление потоками и сообщениями
- Локационно-прозрачные сервисы для упрощения архитектуры
- Самообслуживающая сетка сервисов без ручной настройки
- Встроенная устойчивость к сбоям и динамическое управление компонентами
- Поддержка Linux, macOS и Windows

📌 GitHub: https://github.com/aregtech/areg-sdk

#cpp
7👍2🥰1
🛠️ Утилита для вывода и диалогов в C++ на Windows

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

🚀 Основные моменты:
- Удобный синтаксис << / >> для форматирования и вывода
- Поддержка различных типов данных и пользовательских форматов
- Не требует внешних библиотек
- Легко интегрируется в проекты через .cpp и .h файлы
- Полная документация с примерами доступна в PDF

📌 GitHub: https://github.com/pinardmichel14-sudo/WCoutSrc

#cpp
👍8🤔32🔥1
🛠️ Утилита вывода для C++ на Windows

WCout предлагает простой и последовательный способ форматирования текста и чисел в C++ с использованием единого синтаксиса. Он поддерживает вывод в буфер обмена, мемо и строки, а также использует стандартные Win32 API для работы в любых Windows IDE. Удобный синтаксис позволяет легко различать команды и пользовательские данные.

🚀 Основные моменты:
- Единый синтаксис << / >> для форматирования и вывода
- Поддержка диалоговых функций с несколькими параметрами
- Нет необходимости в сторонних библиотеках
- Легко интегрируется в проекты через .cpp и .h файлы
- Полная документация с примерами доступна в PDF

📌 GitHub: https://github.com/pinardmichel14-sudo/WCoutSrc

#cpp
🤩21
🚀 Простой и безопасный C++ с Cppfront

Cppfront — это экспериментальный компилятор, который преобразует современный C++ в упрощённый синтаксис, позволяя разрабатывать и тестировать новые идеи для языка. Он не заменяет стандартный C++, а служит инструментом для эволюции языка, сохраняя совместимость с существующими компиляторами и библиотеками.

🚀 Основные моменты:
- Преобразует C++ 'syntax 2' в 'syntax 1'.
- Упрощает написание кода, сохраняя стандартные функции.
- Позволяет экспериментировать с новыми предложениями для C++.
- Совместим с C++20 и выше без изменений в экосистеме.

📌 GitHub: https://github.com/hsutter/cppfront

#cpp
6🤔4❤‍🔥2💊2
🚀 Высокопроизводительная библиотека тензоров Axiom

Axiom — это открытая библиотека на C++, которая сочетает в себе простоту NumPy и PyTorch с высокой производительностью. Она предлагает интуитивно понятный API и поддержку GPU, обеспечивая отличные результаты в вычислениях.

🚀 Основные моменты:
- Python-подобный API с перегрузкой операторов
- Высокая производительность с SIMD и BLAS
- Полная поддержка GPU через Metal
- Интуитивные операции с тензорами и интеграция с einops
- Кроссплатформенная совместимость и надежные тесты

📌 GitHub: https://github.com/frikallo/axiom

#cpp
👍64🥰1🎉1
🚀 Высокопроизводительная диффузия на 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
5❤‍🔥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
👍51❤‍🔥1
🌍🚀 Эффективная библиотека для работы с часовыми поясами

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

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

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

#cpp
🔥6👍1
🌟 Быстрая библиотека 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
👍71🔥1
🧩 C++ обертка для PCRE2

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

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

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

#cpp
👍3🔥31