Rust 1.49
Опубликован релиз 1.49 языка программирования Rust.
Компилятор Rust поддерживает широкий спектр систем, но команда Rust не может обеспечить одинаковый уровень поддержки для всех из них.
( читать дальше... )
>>> Подробности
Всего сообщений: 171
Опубликован релиз 1.49 языка программирования Rust.
Компилятор Rust поддерживает широкий спектр систем, но команда Rust не может обеспечить одинаковый уровень поддержки для всех из них.
( читать дальше... )
>>> Подробности
Тихо и незаметно, поcле 3,5 лет разработки, состоялся первый мажорный релиз Buttplug – комплексного решения для разработки программного обеспечения в сфере дистанционного управления интимными устройствами с поддержкой различных способов подключения к ним: Bluetooth, USB и последовательные порты с помощью языков программирования Rust, C#, JavaScript и TypeScript.
Начиная с этой версии, имплементации Buttplug на C# и JavaScript отбрасываются в пользу соответствующих им библиотек, которые взаимодействуют с единственной оставшейся имплементацией на Rust посредством FFI, что позволило начать разработку библиотек для Python, C++, языков на платформе JVM и Unreal Engine.
Buttplug поддерживает управление с клавиатур, джойстиков и контроллеров виртуальной реальности, а также синхронизацию с фильмами посредством плагинов к VLC и Kodi.
>>> Подробности
Redox — UNIX-подобная операционная система с открытым исходным кодом, написанная на Rust.
Изменения в 0.6:
Переписан менеджер памяти rmm. Это устранило утечки памяти в ядре, которые стали серьёзной проблемой с предыдущим менеджером памяти. Также поддержка многоядерных процессоров стала стабильней.
Многие вещи от студентов Redox OS Summer of Code были включены в этот релиз. Включая работы по ptrace, strace, gdb, disk partitioning, logging, io_uring и т.д.
Переработана стандартная библиотека С relibc для обеспечения большей совместимости с приложениями.
Новый формат пакетов pkgar, который быстрее чем старый формат tar.
Обновлена коллекция с примерами пакетов: cookbook
Много времени к подготовке к этому выпуску было потрачено на адаптацию кода к ломающим изменениям в Rust Nightlies, где был изменён дизайн макроса asm. Также другие проблемы удерживали разработчиков от выпуска. Они надеются что новые версии теперь будут выходить чаще. (Предыдущий выпуск 0.5 был: 24 марта 2019 г.)
Скриншот из VirtualBox: https://i.imgur.com/QqylHXj.png
>>> Подробности
Veloren – многопользовательская ролевая игра с открытым исходным кодом на voxel-движке, написанная на языке Rust и вдохновленная такие играми, как Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress и Minecraft. Игра находится на ранней стадии разработки, но в неё уже можно играть онлайн.
Veloren полностью открыта, лицензирована по GPL 3. В ней используется оригинальная графика и музыка, созданные её сообществом. У игры есть маленькое, но растущее сообщество в Discord и Reddit.
Игра доступна в виде flatpak и snap пакетов, а также через Airshipper – собственный кросплатформенный launcher игры.
>>> Подробности
Вышло обновление dotenv-linter — полезного инструмента для проверки и исправления ошибок в .env файлах (файлы переменных среды Docker’а).
Многие программисты стараются при разработке ПО придерживаться манифеста двенадцати факторов. Такой подход позволяет избежать большого количества проблем, связанных с развертыванием приложений и их дальнейшей поддержкой. Один из принципов этого манифеста гласит, что все настройки должны хранится в переменных окружения. Это позволяет менять их под разные окружения (Staging, QA, Production) без изменения кода. Для хранения переменных и их значений широко используются .env-файлы.
dotenv-linter находит и исправляет самые частые проблемы в подобных файлах: дублирование имён, неправильный разделитель, переменные без значения, лишние пробелы и так далее. Для каждого файла при этом создаётся резервная копия, чтобы изменения можно было откатить.
Инструмент написан на Rust, он очень быстрый и универсальный — его можно подключить к любому проекту на любом языке программирования.
Dotenv-linter входит в «Awesome Rust Mentors» и помогает начинающим контрибьюторам пройти первые шаги в разработке открытого ПО.
Репозиторий проекта: https://github.com/dotenv-linter/dotenv-linter
Статья с примерами и описанием работы: https://www.mgrachev.com/2020/04/20/dotenv-linter/
>>> Подробности
Cloud Hypervisor (облачный гипервизор) — это монитор виртуальных машин, который работает поверх KVM и оптимизирован для решения задач, свойственных для облачных систем. Cloud Hypervisor написан на Rust и базируется на rust-vmm crates.
Новое в этой версии:
>>> Подробности
Опубликован релиз 1.47 языка системного программирования Rust, основанного проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.
Основные новшества:
fn main() {
let xs = [0; 34];
println!("{:?}", xs);
}
fn main() {
panic!();
}
раньше выводилась трассировка в 23 этапа, а теперь она будет сведена к 3 этапам, позволяющим сразу уловить суть:
thread 'main' panicked at 'explicit panic', src/main.rs:2:5
stack backtrace:
0: std::panicking::begin_panic
at /rustc/d...d75a/library/std/src/panicking.rs:497
1: playground::main
at ./src/main.rs:2
2: core::ops::function::FnOnce::call_once
at /rustc/d...d75a/library/core/src/ops/function.rs:227
Взято с opennet.ru
>>> Подробности
Консольный файловый менеджер, написанный на языке rust.
Особенности:
Лицензия: MIT
Установленный размер: 5,46 MiB
В зависимостях gcc-libs и zlib.
>>> Подробности
Сообщество Rust запустило опрос о состоянии языка и экосистемы 2020 State of Rust Survey.
Цель опроса – выявить слабые и сильные стороны языка и определить приоритеты разработки.
Опрос опубликован на нескольких языках, участие анонимно и потребует около 10-15 минут. Ответы принимаются до 24 сентября.
Ссылка на форму 2020 State of Rust на русском языке
>>> Подробности
Состоялся выпуск очередной мажорной версии Lemmy — в будущем федеративной, а сейчас централизованной реализации Reddit-like (или Hacker News, Lobsters) сервера — агрегатора ссылок. На этот раз было закрыто 100 отчётов о проблемах, добавлена новая функциональность, улучшена производительность и безопасность.
Сервер реализует типичную для такого рода сайтов функциональность:
Отличительной чертой реализации является минималистичность и адаптируемость интерфейса: кодовая база написана на Rust и TypeScript, используя технологию WebSocket, мгновенно вживую обновляя содержимое страницы, при этом занимая считанные килобайты в памяти клиента. В будущем планируется клиентское API.
Конечно же, нельзя не отметить практически готовую реализацию федерации серверов Lemmy по общепринятому протоколу ActivityPub, используемого во множестве других проектов сообщества Fediverse. С помощью федерации пользователи разных серверов Lemmy и, более того, пользователи других участников ActivityPub-сети, вроде Mastodon и Pleroma, смогут подписываться на сообщества, комментировать и оценивать посты не только в пределах их собственного сервера регистрации, но и остальных. Также планируется реализация подписки на пользователей и добавление глобальной федеративной ленты, как в упомянутых микроблогах.
Изменения в этом выпуске:
Также разработчики сообщают, что получили финансирование в размере €45,000 от организации NLnet.
Полученные средства планируют потратить на:
Для простого ознакомления со стабильной версией можно использовать крупнейший англоязычный сервер — dev.lemmy.ml. На скриншоте запечатлён derpy.email.
>>> Подробности
Состоялся мажорный релиз Deno – открытой, безопасной среды выполнения программ на языке TypeScript, обладающей следующими особенностями:
Deno и являющееся валидным Javascript кодом можно исполнять в браузере;deno run --inspect-brk: дебаг-сервер, взаимодействующий с Visual Studio Code и инструментами удалённой отладки в Google Chrome;deno install: установщик программ для Deno из удалённых ресурсов. Производит загрузку вместе с зависимостями и добавляет в $HOME/.deno/bin cкрипт для запуска программы;deno fmt: производит форматирование кода;deno bundle: бандлер программ на Deno. Производит js-файл, содержащий в себе программу для Deno и её зависимости;npm и package.json: внешние модули подгружаются и используются (загрузка по сети происходит только во время первого выполнения, в дальнейшем модуль кэшируется вплоть до вызова с флагом --reload) после указания их URL прямо в программе:
import * as log from "https://deno.land/std/log/mod.ts";
Promise, в отличие от Node.JS;Deno – встраиваемая среда, и может быть использована для расширения существующих программ на Rust с помощью крейта deno_core.
Также команда Deno поставляет стандартные модули без внешних зависимостей, аналогичные по функциональности со стандартной библиотекой в языке Go.
Deno подходит для использования в качестве выполнения скриптов – поддерживается вызов через shebang.
Есть REPL.
Написано на языке программирования Rust.
>>> Подробности
Buttplug — открытый стандарт и набор ПО для управления интимными устройствами, такими как фаллоимитаторы, сексмашины, электростимуляторы и прочее.
Особенности:
Набор библиотек для Rust, C#, Javascript/Typescript и других популярных языков программирования;
Поддержка устройств Kiiroo, Lovense, Erostek и других. Полный список здесь;
Поддерживает управление по Bluetooth, USB, HID, Serial интерфейсам, а также звуковое управление;
Исходный код открыт по лицензии (BSD 3-Clause).
Среди ПО доступны:
Intiface Desktop — контрольный сервер управления устройствами;
LaunchControl — плагин для Kodi и VLC для синхронизации с фильмами;
Virtual Romance Club — игра с поддержкой устройств виртуальной реальности;
Intiface Game Haptics Router — программа для управления устройствами с геймпадов и ВР-контроллеров.
>>> Подробности
ttf-parser — это библиотека для разбора TrueType/OpenType шрифтов. В новой версии появилась полноценная поддержка переменных шрифтов (variable fonts) и C API, вследствие чего я решил прорекламировать её на лоре.
До недавнего времени, если была необходимость работы с TrueType шрифтами, было ровно два варианта: FreeType и stb_truetype. Первый является огромным комбайном, второй поддерживает довольно небольшое количество функций.
ttf-parser находится где-то посредине. Он поддерживает все те же TrueType таблицы (формат TrueType состоит из множества отдельных бинарных таблиц) что и FreeType, но не занимается отрисовкой самих глифов.
При этом, ttf-parser содержит множество других значительных отличий:
ttf-parser написан на Rust без использования unsafe. FreeType и stb_truetype написаны на C.ttf-parser является единственной безопасной (memory-safe) реализацией. Чтение произвольной памяти невозможно. Во FreeType постоянно исправляют уязвимости, а stb_truetype в принципе не предназначен для чтения произвольных шрифтов.ttf-parser является единственной thread-safe реализацией. Все методы парсинга константны. Единственным исключением является задание координат для переменных шрифтов, но эта функция reentrant. FreeType в принципе однопоточный. stb_truetype - reentrant (можно использовать отдельные копии в разных потоках, но не одну из множества).ttf-parser является единственной реализацией не использующей аллокации в «куче». Это позволяет ускорить разбор и избежать проблем при OOM.И несмотря на все гарантии безопасности, ttf-parser также является и самой быстрой реализацией. Например разбор CFF2 в 3.5 раза быстрее чем в FreeType. Разбор glyf тем временем на 10% медленнее чем в stb_truetype, но это из-за того, что он не поддерживает переменные шрифты, для реализации которых требуется хранить доп. информацию. Больше подробностей в README.
>>> Подробности
Дэмиэн Рил, юрист, программист и бакалавр музыки, и Ноа Рубин, музыкант, (Damien Riehl, Noah Rubin) написали программу, которая сгенерировала все возможные короткие 12-тактные мелодии, использующие 8 нот в пределах октавы (около 69 миллиардов комбинаций), зарегистрировали их от имени своей компании All the Music, LLC и передали в общественное достояние. Выложили на archive.org 1200 Gb в архивах tar.gz по несколько сотен мелодий. (Проблема в архивах: сняты все биты разрешений, может понадобиться chmod -R a+rw.)
Заявленная цель — предотвратить иски как у Тома Пэтти против Сэма Смита, которого суд признал виновным в подсознательном копировании мелодии. Если в будущем кто-то будет требовать с кого-то денег за то, что его мелодия похожа на существующую, можно будет ссылаться на архив. По крайней мере, если мелодия истца издана после выкладки архива.
Сама программа, перебирающая сочетания нот, выложена на GitHub под лицензией Creative Commons-Share Alike 4.0. Язык — Rust. Авторы сравнивают её работу с брутфорсом паролей, 300 000 комбинаций в секунду.
Опубликована статья на wiki проекта Hyperbola, в которой рассматриваются проблемы языка Rust в контексте свободы программного обеспечения, а также необходимость развития в независимом от политик торговых марок Mozilla Corporation (субсидиар Mozilla Foundation, годовой доход порядка 0.5 миллиарда долларов).
Одной из рассматриваемых в статье проблем является тот факт, что в отличии от C, Go, Haskell и прочих языков программирования, Rust ― является торговой маркой, а не названием языка программирования, разрешенным к употреблению без согласия Mozilla Corporation.
>>> Подробности
Rust — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla, сочетающий парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах, и с управлением памятью через понятие «владения».
Что нового в версии 1.39:
С полным списком изменений можно ознакомиться на сайте разработчика.
>>> Источник
Lemmy создан как альтернатива сайтам вроде Reddit, Lobste.rs, Raddle или Hacker News: можно подписываться на интересующие вас темы, публиковать ссылки и обсуждения, а затем голосовать и комментировать.
Но есть важное отличие: любой пользователь может запустить свой сервер, который, как и все другие, будет подключен к одной и той же «вселенной», называемой Fediverse. Пользователь, зарегистрированный на одном сервере, может подписаться на темы на любом другом сервере и может вести обсуждения с пользователями, зарегистрированными в других местах.
На каждом из lemmy-серверов может быть установлена собственная политика модерации и назначены модераторы для борьбы с токсичными троллями.
На данный момент доступна бета-версия, и многие функции в настоящее время не работают или находятся в активной разработке, например федеративная сеть.
>>> Подробности
Среди нововедений:
enum через псевдонимы типов (type aliases), например через Self.cargo vendor теперь входит в стандартную поставку.
cargo vendor можно явно скачивать и использовать полную копию всех исходных кодов всех зависимостей. Это полезно для компаний с монорепозиториями, которые хотели бы хранить и анализировать весь исходный код, используемый в их ПО.const _:.#[repr(align(N))] для лучшего контроля над выравниванием в Enum.>>> Анонс
Jakub Kądziołka опубликовал proof-of-concept, показывающий непосредственные проблемы, связанные с ошибкой в проекте компилятора Rust, которую разработчики безуспешно пытаются решить уже на протяжение четырех лет.
Пример, разработанный Jakub, позволяет обойти Borrow Checker посредством очень простого трюка:
fn main() {
let boom = fake_static::make_static(&vec![0; 1<<20]);
println!("{:?}", boom);
}
Разработчик просит не использовать этот обход в Production, так как его целью было только привлечь внимание к проблеме, игнорируемой разработчиками Rust.
>>> Подробности
На этой неделе вышла версия 0.3.0 свободной утилиты Vector, предназначенной для сбора, преобразования и сохранения данных логов, метрик и событий.
Будучи написанной на языке Rust, она отличается высокой производительностью и низким потреблением оперативной памяти по сравнению с аналогами. Кроме того, большое внимание уделено функциям, связанным с корректностью, в частности, возможностям сохранения неотправленных событий в буфер на диске и ротации файлов.
Архитектурно Vector является роутером событий, принимающим сообщения из одного или нескольких источников, опционально применяющим над этими сообщениями преобразования, и отправляющим их в один или несколько стоков.
( читать дальше... )
>>> Подробности
| ← предыдущие | следующие → |