После более пяти месяцев разработки состоялся выпуск 0.6.3 кроссплатформенного (Linux, MacOS, Windows) редактора текстов NotepadNext, разрабатываемого на языке C++ с использованием библиотек Qt (поддерживается версия 6), Scintilla, Lua и других, распространяемого по лицензии GPL-3.0 и называемого автором кроссплатформенной реализацией Notepad++.
26 мая состоялся выпуск 3.14.0 CTranslate2 — фреймворков, разрабатываемых под лицензией MIT проектом OpenNMT на языках C++ и Python, и предназначенных для эффективного использования (с использованием оптимизаций для CPU и GPU) натренированных моделей в системах машинного перевода.
После более трёх месяцев разработки состоялся выпуск 4.1.1 кроссплатформенной библиотеки для C++ (стандарт C++17) FTXUI (Functional Terminal (X) User Interface), предназначенной для создания приложений с текстовым интерфейсом и распространяемой по лицензии MIT.
22 мая, после более полутора лет разработки, состоялся выпуск 0.9.0 C++ библиотеки FINAL CUT, предназначенной для создания приложений с текстовым интерфейсом, не зависящей от библиотек ncurses, termbox или подобных, и распространяемой по лицензии LGPL-3.0.
3 мая состоялся выпуск 8.2.0 библиотеки libzim для C++, предназначенной для работы с файлами в формате ZIM (openzim.org). Разработка библиотеки ведётся и спонсируется проектом Kiwix.
Кроме этого, проект Kiwix предоставляет набор консольных утилит zim-tools, десктопный и мобильные клиенты, и скрипты для создания файлов ZIM из HTML многих популярных сайтов.
После восьми месяцев разработки состоялся выпуск 10.0.0 библиотеки форматирования данных fmt (github.com) — быстрой и безопасной альтернативы stdio и iostreams для C++.
rapidfuzz-cpp - быстрая, SIMD-оптимизированная библиотека на языке C++, реализующая несколько алгоритмов нечёткого сравнения строк и вычисления метрик:
Вышла новая версия Boost, набора кроссплатформенных библиотек C++. Некоторые крупные изменения:
более 20 библиотек запланировали отказ от поддержки C++98 в течение двух следующих релизов; минимальным требованием станет компилятор с поддержкой C++11 (например, gcc 4.8 и выше);
некоторые библиотеки (Math, Multiprecision) повышают требования к стандарту до C++14 (gcc 5, clang 5);
Mysql: новая библиотека на основе Asio, клиент MySQL;
Unordered: unordered_node_map, unordered_node_set - новые контейнеры на основе открытой адресации.
А также множество улучшений и исправлений в Core, Asio, Filesystem, JSON, Math, URL и других библиотеках.
Вышла новая версия LLVM. Проект LLVM включает в себя оптимизатор и кодогенератор с LLVM IR во многие процессорные архитектуры, который используется многими проектами для реализации своих языков программирования, а также:
Компания Qt Company опубликовала релиз фреймворка Qt 6.4, в котором продолжена работа по стабилизации и наращиванию функциональности ветки Qt 6. В Qt 6.4 обеспечена поддержка платформ Windows 10+, macOS 10.15+, Linux (Ubuntu 20.04, CentOS 8.2, openSUSE 15.3, SUSE 15 SP2), iOS 14+, Android 6+ (API 23+), webOS, WebAssembly, INTEGRITY и QNX. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2.
Интернет, 29 июля 2022 года. Яндекс опубликовал исходный код и документацию фреймворка userver. Это первый открытый набор инструментов, который позволяет создавать высоконагруженные приложения на языке С++ и протестирован на масштабах уровня Яндекса. Userver используют в Яндекс Go, Лавке, Доставке, Маркете, финтех-проектах и многих других сервисах компании. Фреймворк предоставляется по открытой лицензии Apache 2.0.
Userver лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях.
Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчетом времени прибытия водителя или курьера и многими другими задачами.
«Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса. Поэтому userver создавали с акцентом на надёжность и удобство, а внутри него есть всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Он хорошо подходит для разработки приложений как в небольших, так и в крупных компаниях. И с помощью userver даже новичок может за неделю написать новый микросервис», — говорит Антон Полухин, один из авторов фреймворка и руководитель группы бэкенд-разработки решений для продуктовых команд RideTech и eCom.
Яндекс выкладывает в опенсорс и другие свои ключевые технологии — например, распределенную систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.
В видеоконвертер SEZEII добавлен новый эффект, имитирующий тайловую палитровую графику компьютеров ZX Spectrum и MSX. Обработать можно видео в любом формате, и в результате вы получите стилизованное видео в lossless -качестве. Имитируется стандартная конфигурация Spectrum с областями 8x8 и стандартной палитрой, но эффект настраиваемый: можно выбирать любую палитру, размер блоков и дизеринг.
Компания AMD заявила об открытии исходных кодов технологии суперсэмплинга FidelityFX Super Resolution 2.0 для увеличения качества изображения в играх с низким разрешением при преобразовании в более высокое разрешение. Код проекта написан на C++ и рапространяется под лицензией MIT. Кроме базового API, реализована поддержка таких графических API как Vulkan и DirectX 12, а также шейдерных языков HLSL и GLSL. Также доступен набор примеров и документация.
За последние несколько лет мне пришлось столкнуться с множеством вопросов, которые были сформулированы примерно так: «мой проект не открывается в среде CLion». В свою очередь, это приводило к необходимости из раза в раз объяснять разным людям примерно одно и то же. Статья имеет целью сохранить тот опыт, который был накоплен в процессе анализа десятков разных проектов.