Язык оптимизирован для решения низкоуровневых задач, таких как разработка операционных систем, компиляторов, сетевых приложений и системных утилит, для которых требуется достижение максимальной производительности и полный контроль над выполнением. В языке применяется ручное управление памятью и статическая система типов, при которой каждой переменной явно должен быть присвоен определённый тип.
Для выполнения приложения поставляется минимальный runtime, а для разработки распространяется стандартная библиотека функций, предоставляющая доступ к базовым интерфейсам операционной системы, а также предлагающая функции для работы с типовыми алгоритмами, протоколами и форматами, включая средства для использования регулярных выражений и шифрования. Для разработки графических приложений развивается инструментарий hare-wayland, а также привязки для доступа к возможностям GTK, Vulkan, OpenGL, SDL2 и libui.
В новой версии:
- Добавлена поддержка операционной системы NetBSD (в дополнение к ранее поддерживаемым OpenBSD, FreeBSD и Linux).
- Добавлен синтаксис для определения циклов «for-each«, упрощающих перебор элементов массивов и срезов.
let items = [1, 2, 3, 4, 5]; for (let item .. items) { fmt::println(item)!; };
- Предоставлена возможность определения необязательных параметров функций, значение по умолчанию которых задаётся во время определения функции.
fn example(x: int, y: int = 34) void = { // ... }; example(12); //эквивалентно вызову example(12, 34);
- Повышена производительность модуля bufio и связанных с ним API, использующих буферизированный ввод/вывод, таких как unix::resolvconf, unix::hosts и unix::passwd.
- В модуле «regex::» в регулярных выражениях предоставлена возможность использование шаблонов вида «(ha|py|sh)» для перечисления нескольких вариантов выбора.
- Добавлена поддержка разделяемой памяти (shm_open) и механизма memfd, позволяющего идентифицировать область памяти через передаваемый между процессами файловый дескриптор. Разделяемая память, которая может использоваться для межпроцессного и внутрипроцессного взаимодействия, например, уже задействована в реализации клиента и сервера Wayland hare-wayland.
- Добавлены криптографические функции crypto::ec,
crypto::ecdh и crypto::ecdsa.
Источник: http://www.opennet.ru/opennews/art.shtml?num=61551