🧩 Легкий IoC контейнер для C++17
Genode.IoC — это компактный и простой в использовании контейнер внедрения зависимостей для C++17. Он не требует базовых классов или интерфейсов, что делает его идеальным для легковесных проектов. Автоматическое создание объектов и управление временем жизни упрощают интеграцию.
🚀 Основные моменты:
- Одно заголовочное файл.
- Автоматическое разрешение зависимостей.
- Минимальная конфигурация и управление временем жизни.
- Поддержка синглтонов и локальных экземпляров.
- Легкая интеграция в проекты.
📌 GitHub: https://github.com/SirusDoma/Genode.IoC
#cpp
Genode.IoC — это компактный и простой в использовании контейнер внедрения зависимостей для C++17. Он не требует базовых классов или интерфейсов, что делает его идеальным для легковесных проектов. Автоматическое создание объектов и управление временем жизни упрощают интеграцию.
🚀 Основные моменты:
- Одно заголовочное файл.
- Автоматическое разрешение зависимостей.
- Минимальная конфигурация и управление временем жизни.
- Поддержка синглтонов и локальных экземпляров.
- Легкая интеграция в проекты.
📌 GitHub: https://github.com/SirusDoma/Genode.IoC
#cpp
GitHub
GitHub - SirusDoma/Genode.IoC: A non-intrusive single file header IoC Container for C++ 17
A non-intrusive single file header IoC Container for C++ 17 - SirusDoma/Genode.IoC
👍3❤2🔥2
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇
🖥 ИИ: t.me/ai_machinelearning_big_data
🖥 Python: t.me/pythonl
🖥 Linux: t.me/linuxacademiya
🖥 C++ t.me/cpluspluc
🖥 Docker: t.me/DevopsDocker
🖥 Хакинг: t.me/linuxkalii
🖥 Devops: t.me/DevOPSitsec
👣 Golang: t.me/Golang_google
🖥 Аналитика: t.me/data_analysis_ml
🖥 Javascript: t.me/javascriptv
🖥 C#: t.me/csharp_ci
🖥 Java: t.me/javatg
🖥 Базы данных: t.me/sqlhub
👣 Rust: t.me/rust_code
🤖 Технологии: t.me/vistehno
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
🖥 Подборка по Golang: https://xn--r1a.website/addlist/MUtJEeJSxeY2YTFi
⚡️ Лучшие ИИ ресурсы: https://xn--r1a.website/addlist/2Ls-snqEeytkMDgy
Max ИИ: https://max.ru/ai_machinelearning_big_data
Max Ml: https://max.ru/vistehno
Max python: https://max.ru/pythonl
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Max Java: https://max.ru/javatg
Max Sql: https://max.ru/sqlhub
Max Devops: https://max.ru/DevOPSitsec
Анализ данных: https://max.ru/data_analysis_ml
C++ : https://max.ru/cpluspluc
C#: https://max.ru/csharp_ci
🖥 Chatgpt бот в тг: t.me/Chatgpturbobot
📚 Бесплатные ит-книги: https://xn--r1a.website/addlist/HwywK4fErd8wYzQy
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
⚡️ Лучшие ИИ ресурсы: https://xn--r1a.website/addlist/2Ls-snqEeytkMDgy
Max ИИ: https://max.ru/ai_machinelearning_big_data
Max Ml: https://max.ru/vistehno
Max python: https://max.ru/pythonl
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Max Java: https://max.ru/javatg
Max Sql: https://max.ru/sqlhub
Max Devops: https://max.ru/DevOPSitsec
Анализ данных: https://max.ru/data_analysis_ml
C++ : https://max.ru/cpluspluc
C#: https://max.ru/csharp_ci
📚 Бесплатные ит-книги: https://xn--r1a.website/addlist/HwywK4fErd8wYzQy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍1🔥1🖕1
This media is not supported in your browser
VIEW IN TELEGRAM
> Linux — на C
> Git — на C
> интерпретатор Python (CPython) — на C
> интерпретатор Ruby (MRI) — на C
> PostgreSQL — на C
> SQLite — на C
> Redis — на C
> GTA 5 — на C++
> MySQL — на C++
> MongoDB — на C++
> Unreal Engine — на C++
> Chrome — на C++
> Firefox — на C++
> ядро Windows — на C
> ядро macOS (XNU) — на C
> Photoshop — на C++
> VMware — на C++
> TensorFlow (ядро) — на C++
• Всё ещё не уверен нужно ли учить C и C++?
> Git — на C
> интерпретатор Python (CPython) — на C
> интерпретатор Ruby (MRI) — на C
> PostgreSQL — на C
> SQLite — на C
> Redis — на C
> GTA 5 — на C++
> MySQL — на C++
> MongoDB — на C++
> Unreal Engine — на C++
> Chrome — на C++
> Firefox — на C++
> ядро Windows — на C
> ядро macOS (XNU) — на C
> Photoshop — на C++
> VMware — на C++
> TensorFlow (ядро) — на C++
• Всё ещё не уверен нужно ли учить C и C++?
❤35👍7🔥5😁3🤔1🍌1
🚀 Высокопроизводительная библиотека интернирования строк на C++
Azrar::StringIndex предлагает эффективный механизм интернирования строк, создавая глобальный словарь уникальных строк. Это значительно ускоряет доступ и сравнение строк, что особенно полезно в приложениях с большим количеством идентичных строк.
🚀 Основные моменты:
- Уменьшает использование памяти за счет хранения строк только один раз.
- Обеспечивает быстрый доступ к строкам через индексы.
- Поддерживает многопоточность для повышения производительности.
- Идеально подходит для приложений, работающих с большими объемами строк.
📌 GitHub: https://github.com/kboutora/Azrar
#cpp
Azrar::StringIndex предлагает эффективный механизм интернирования строк, создавая глобальный словарь уникальных строк. Это значительно ускоряет доступ и сравнение строк, что особенно полезно в приложениях с большим количеством идентичных строк.
🚀 Основные моменты:
- Уменьшает использование памяти за счет хранения строк только один раз.
- Обеспечивает быстрый доступ к строкам через индексы.
- Поддерживает многопоточность для повышения производительности.
- Идеально подходит для приложений, работающих с большими объемами строк.
📌 GitHub: https://github.com/kboutora/Azrar
#cpp
👍5❤🔥1❤1👏1
🌍🚀 Эффективная библиотека для работы с часовыми поясами
vtz предлагает высокую производительность и простой API для обработки временных данных. Она значительно быстрее конкурентов, обеспечивая до 60 раз более быстрые преобразования часовых поясов и парсинг временных меток, что делает её идеальным выбором для приложений с высокими требованиями к скорости и масштабируемости.
🚀Основные моменты:
- 30-60x быстрее преобразования часовых поясов.
- Эффективный алгоритм с блочной таблицей для быстрого поиска.
- Совместимость с
- Оптимизирована для работы с большими объемами данных.
📌 GitHub: https://github.com/voladynamics/vtz
#cpp
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
Glaze — это одна из самых быстрых библиотек для работы с JSON и другими форматами, обеспечивающая высокую производительность и простоту интерфейса. Она поддерживает множество форматов, включая JSON, CBOR, YAML и другие, с акцентом на компиляцию времени и рефлексию.
🚀Основные моменты:
- Поддержка C++23 и C++26 с рефлексией для удобной работы с данными
- Высокая производительность: быстрая сериализация и десериализация
- Заголовочная библиотека без зависимости от RTTI и исключений
- Совместимость с современными компиляторами и стандартами
📌 GitHub: https://github.com/stephenberry/glaze
#cpp
❤9👍2
🚀 GSD 2: Новый уровень автоматизации разработки
GSD 2 — это эволюция инструмента Get Shit Done, превращенная в полноценный CLI-агент. Он управляет процессами разработки, обеспечивая контроль контекста, автоматизацию задач и восстановление после сбоев. С GSD 2 вы можете просто запустить команду и вернуться к готовому проекту с чистой историей git.
🚀 Основные моменты:
- Автоматическое управление задачами с чистым контекстом.
- Восстановление после сбоев и отслеживание затрат.
- Программное управление ветками git и диагностика зависаний.
- Интеграция с Pi SDK для прямого доступа к агенту.
- Упрощенная миграция из предыдущей версии.
📌 GitHub: https://github.com/gsd-build/gsd-2
GSD 2 — это эволюция инструмента Get Shit Done, превращенная в полноценный CLI-агент. Он управляет процессами разработки, обеспечивая контроль контекста, автоматизацию задач и восстановление после сбоев. С GSD 2 вы можете просто запустить команду и вернуться к готовому проекту с чистой историей git.
🚀 Основные моменты:
- Автоматическое управление задачами с чистым контекстом.
- Восстановление после сбоев и отслеживание затрат.
- Программное управление ветками git и диагностика зависаний.
- Интеграция с Pi SDK для прямого доступа к агенту.
- Упрощенная миграция из предыдущей версии.
📌 GitHub: https://github.com/gsd-build/gsd-2
❤2👍1
libPhenom
libPhenom — это фреймворк событий, разработанный Facebook для создания высокопроизводительных и масштабируемых систем на C++. Он обеспечивает простой и эффективный способ публикации и подписки на события, а также маршрутизации событий между различными компонентами системы.
#для_продвинутых
libPhenom — это фреймворк событий, разработанный Facebook для создания высокопроизводительных и масштабируемых систем на C++. Он обеспечивает простой и эффективный способ публикации и подписки на события, а также маршрутизации событий между различными компонентами системы.
#для_продвинутых
👍5❤1
🎲 Высокопроизводительная генерация случайных чисел с Zorro
Zorro - это библиотека для генерации случайных чисел на основе xoshiro256++, поддерживающая автоматическую SIMD-диспетчеризацию. Просто добавьте один заголовочный файл в проект и получите доступ к высокопроизводительным генераторам для различных распределений.
🚀Основные моменты:
- Поддержка uniform, normal, exponential и Bernoulli распределений.
- Автоматический выбор SIMD на этапе компиляции.
- Высокая производительность: до 3900 M/s для uniform генерации.
- Легкая интеграция с существующими проектами через один заголовок.
📌 GitHub: https://github.com/bobjansen/Zorro
Zorro - это библиотека для генерации случайных чисел на основе xoshiro256++, поддерживающая автоматическую SIMD-диспетчеризацию. Просто добавьте один заголовочный файл в проект и получите доступ к высокопроизводительным генераторам для различных распределений.
🚀Основные моменты:
- Поддержка uniform, normal, exponential и Bernoulli распределений.
- Автоматический выбор SIMD на этапе компиляции.
- Высокая производительность: до 3900 M/s для uniform генерации.
- Легкая интеграция с существующими проектами через один заголовок.
📌 GitHub: https://github.com/bobjansen/Zorro
❤6👍4🤔1😱1
Компилятор для языка Си, написанный на Shell
Александр Гомес Гайгалас (Alexandre Gomes Gaigalas), автор библиотеки coral для создания переносимых shell-скриптов, опубликовал C89cc.sh, компилятор для языка Си, написанный целиком на Shell. Компилятор поддерживает стандарт C89 и может генерировать исполняемые файлы в формате ELF64 для систем x86-64. Код содержит около восьми тысяч строк и открыт под лицензией ISC.
Подробнее:
https://opennet.ru/65133/
https://opennet.me/65133/
Александр Гомес Гайгалас (Alexandre Gomes Gaigalas), автор библиотеки coral для создания переносимых shell-скриптов, опубликовал C89cc.sh, компилятор для языка Си, написанный целиком на Shell. Компилятор поддерживает стандарт C89 и может генерировать исполняемые файлы в формате ELF64 для систем x86-64. Код содержит около восьми тысяч строк и открыт под лицензией ISC.
Подробнее:
https://opennet.ru/65133/
https://opennet.me/65133/
👀15🔥11❤4🤣3👍1🌚1
ffead-cpp
ffead-cpp — это веб-фреймворк, фреймворк приложений и набор утилит, объединенные в один пакет. Он также предоставляет встроенное ядро сервера, совместимое с HTTP/HTT2/Web-Socket.
#для_продвинутых
ffead-cpp — это веб-фреймворк, фреймворк приложений и набор утилит, объединенные в один пакет. Он также предоставляет встроенное ядро сервера, совместимое с HTTP/HTT2/Web-Socket.
#для_продвинутых
❤13👍1
⚡️ Хочешь собрать GPU с нуля - вот настоящий появился симулятор Mvidia
Нашли для вас сайт, где можно пройти весь путь железа руками. Без теории ради теории, а через интерактив.
• Начинаешь с базы
движение электронов, транзисторы, логика
• Дальше собираешь уровни выше
логические схемы, ALU, простой процессор
• До GPU ещё не дошли
блоки про шейдеры и графику пока в разработке, но фундамент уже есть
На Hacker News проект активно хвалят, особенно за подачу и понятную прогрессию
Хороший способ наконец понять, как всё это реально устроено под капотом, а не на уровне абстракций
Сначала проходишь симулятор потом уже думаешь, как построить Nvidia 2.0
https://jaso1024.com/mvidia/
Нашли для вас сайт, где можно пройти весь путь железа руками. Без теории ради теории, а через интерактив.
• Начинаешь с базы
движение электронов, транзисторы, логика
• Дальше собираешь уровни выше
логические схемы, ALU, простой процессор
• До GPU ещё не дошли
блоки про шейдеры и графику пока в разработке, но фундамент уже есть
На Hacker News проект активно хвалят, особенно за подачу и понятную прогрессию
Хороший способ наконец понять, как всё это реально устроено под капотом, а не на уровне абстракций
Сначала проходишь симулятор потом уже думаешь, как построить Nvidia 2.0
https://jaso1024.com/mvidia/
🔥13❤5👍4
Data-Parallel Types: алгоритмы (C++26)
Библиотека «data-parallel types» для SIMD-векторов (пространство имён
-
-
- Автор отмечает, что строка
-
- Показаны два примера: ограничение к диапазону
Итог
- Для SIMD-векторов доступны привычные «минимумы/максимумы» и покомпонентный
-
- Дальше автор планирует разбирать новые возможности C++26 (в частности, контракты).
https://www.modernescpp.com/index.php/data-parallel-types-algorithms/
#cpp #programming
Библиотека «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
👍7❤3🔥1
oneDNN
oneDNN — это высокопроизводительная библиотека с открытым исходным кодом, предназначенная для оптимизации машинного обучения и приложений глубокого обучения.
https://github.com/oneapi-src/oneDNN
oneDNN — это высокопроизводительная библиотека с открытым исходным кодом, предназначенная для оптимизации машинного обучения и приложений глубокого обучения.
https://github.com/oneapi-src/oneDNN
👍3
Daniel Lemire, эксперт по производительности софта из топ-2% ученых мира (по рейтингу Stanford/Elsevier 2025) и топ-1000 разработчиков на GitHub, опубликовал статью про эволюцию языков программирования семейства C. Разбираем ключевые тезисы.
Всё началось с трех языков: Fortran (1957), Pascal (1970) и C (1972). Fortran создавался для числодробилки и научных расчетов. Pascal намеренно ограничивал низкоуровневый доступ, потому что задумывался как учебный язык для структурного программирования. А вот C победил именно потому, что позволял работать с указателями, прямым доступом к памяти и при этом оставался достаточно универсальным для системной разработки вроде Unix.
В 80-е и 90-е объектно-ориентированное программирование стало чем-то вроде религии. Lemire прямо пишет: это превратилось в секту. Но C не был объектно-ориентированным. Так появился C++, который начинался как «C with Classes». C++ принес шаблоны, обобщенное программирование и метапрограммирование на этапе компиляции. Это сделало язык мощным, но и сложным для освоения (с безумными сообщениями об ошибках).
Показываю как профессионально работать с Claude и другими ИИ у себя в телеге! И зеркало Max, если тг не работает(
C и C++ стали дико успешными, но писать кроссплатформенные приложения было больно. Приходилось целиться в Windows или конкретный Unix. Это было проблемой для Sun Microsystems, которая продавала Unix-машины и хотела конкурировать с Microsoft.
Так в 1995 году появилась Java. Безопасная, портативная альтернатива C++: без арифметики указателей, с обязательной сборкой мусора, проверкой границ массивов и виртуальной машиной (JVM) с JIT-компиляцией для производительности. Обещание «write once, run anywhere» напрямую закрывало боль портируемости C/C++. До сих пор Java остается сильным решением для enterprise и серверного кода.
В том же 1995-м появился JavaScript, который, несмотря на название, семантически почти ничего общего с Java не имеет. Lemire считает, что его лучше рассматривать отдельно от ветки C/C++. Python тоже стоит особняком.
Microsoft в 2000 году выкатила C#. Синтаксически он из того же семейства, что C++ и Java, но с поддержкой AOT-компиляции в современном .NET и возможностью работать с указателями в явно помеченных unsafe-блоках. По сути, C# можно назвать «C++ со сборкой мусора». Он даже конкурирует с C++ в геймдеве благодаря Unity.
Google создал Go как упрощенный современный C: со сборкой мусора, встроенной проверкой границ для слайсов и массивов, с указателями, но без произвольной арифметики в безопасном коде (пакет unsafe существует для низкоуровневых нужд).
Apple ответила Swift. Производительность и цели синтаксиса как у C++, но с современными фичами безопасности (проверка границ по умолчанию, паника при переполнении целых чисел в debug-режиме) и автоматическим подсчетом ссылок (ARC) для управления памятью. Swift заменил Objective-C, но Lemire рассматривает его как наследника C++.
Примерно тогда же появились Rust и Zig. Rust, как и Swift, отказался от поколенческой сборки мусора из Java, C# и Go. Вместо этого он полагается на систему владения и заимствования на этапе компиляции, с компромиссом: через циклические ссылки можно допустить утечку памяти. Zig делает работу с памятью полностью явной.
Интересный тезис Lemire: Rust и Zig правильнее считать потомками C, а не C++. Оба, конечно, намного мощнее C, но по духу они именно C-подобные языки.
Доминирующими языками для перформанс-критичных, системных, enterprise- и инфраструктурных задач до сих пор остаются C, C++, Java и C#. По эффекту Линди (чем дольше что-то существует, тем дольше оно, вероятно, просуществует), эти языки, особенно C, которому уже больше 50 лет, будут с нами еще очень долго.
https://vc.ru/dev/2860450-yazyk-c-i-vliyanie-na-c-java-rust-go-swift-i-zig
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍7🔥2👏1😐1
🧩 C++ обертка для PCRE2
pcre2cpp - это объектно-ориентированная обертка для библиотеки PCRE2, обеспечивающая удобный интерфейс для работы с регулярными выражениями. Поддерживает C++17 и C++20, упрощая процесс сопоставления и захвата результатов.
🚀 Основные моменты:
- Объектно-ориентированный интерфейс для PCRE2 10.47
- Совместимость с C++17 и C++20
- Удобное сопоставление регулярных выражений
- Встроенное захватывание результатов
📌 GitHub: https://github.com/MAIPA01/pcre2cpp
#cpp
pcre2cpp - это объектно-ориентированная обертка для библиотеки PCRE2, обеспечивающая удобный интерфейс для работы с регулярными выражениями. Поддерживает C++17 и C++20, упрощая процесс сопоставления и захвата результатов.
🚀 Основные моменты:
- Объектно-ориентированный интерфейс для PCRE2 10.47
- Совместимость с C++17 и C++20
- Удобное сопоставление регулярных выражений
- Встроенное захватывание результатов
📌 GitHub: https://github.com/MAIPA01/pcre2cpp
#cpp
👍3🔥3❤2