websocat — клиент, сервер и прокси для WebSocket-ов
Вышла версия 1.0.0 программы для работы с WebSocket-ами из командной строки «websocat». Девиз программы: "netcat
, curl
и socat
для вебсокетов".
( читать дальше... )
>>> Подробности
Всего сообщений: 119
Вышла версия 1.0.0 программы для работы с WebSocket-ами из командной строки «websocat». Девиз программы: "netcat
, curl
и socat
для вебсокетов".
( читать дальше... )
>>> Подробности
27 июня вышла новая версия Eclipse 4.8.0 Photon. Eclipse - платформа для построения IDE, включающая в себя плагины для поддержки разработки на разных языках. По словам Майка Милинковича, исполнительного директора Eclipse Foundation, задача Eclipse Photon - расширение многоязычных возможностей Eclipse за счет взаимодействия по протоколу LSP (Language Server Protocol), через который предоставляются поддержка редактирования кода на современных языках (в Eclipse поддерживается LSP версии 3.6 и Debug Adapter protocol 1.25).
Обновления плагинов:
В состав Eclipse включен плагин для поддержки разработки на Rust - Eclipse Corrosion 0.1.0 (первый языковый плагин, построенный на взаимодействии по LSP).
>>> Подробности
Команда разработчиков языка Rust рада представить новую версию Rust 1.27.0. Rust — системный язык программирования, ориентированный на безопасность, скорость и параллельность.
( читать дальше... )
>>> Подробности
symbol
.
svg
элементов.
fill="url(#lg1) red"
Ещё не реализовано:
filter
, marker
, textPath
.
Результаты тестирования. Сравнительная таблица.
Если исключить dynamic SVG subset, фильтры и маркеры - resvg
предоставляет лучшую поддержку SVG среди всех кроссплатформенных, FOSS библиотек. И, в том числе, является самой быстрой реализацией.
>>> Репозиторий
Команда разработчиков языка Rust рада представить новую версию Rust 1.26.0. Rust — системный язык программирования, ориентированный на безопасность, скорость и параллельность.
( читать дальше... )
Основные изменения:
impl Trait
в заголовках функций
( читать дальше... )
match
, if let
, ...)
( читать дальше... )
( читать дальше... )
0..=4
, включающие обе границы в диапазон перечисления
( читать дальше... )
i128
и u128
( читать дальше... )
>>> Подробности
Как известно, распространение списков блокировок Роскомнадзора официально запрещено за пределами провайдеров. Но нашлись добрые люди, которые создали проект Zapret-Info и регулярно выкладывают свежие выгрузки реестра заблокированных адресов.
К сожалению, дампы выгрузок выкладываются в неудобном для использования формате (CSV, CP1251, иногда содержит ошибки). Для разбора этого формата была написана библиотека zicsv, позволяющая поточно читать дамп. На основе этой библиотеки разработана утилита командной строки zicsv-tool, с помощтю которой можно:
( читать дальше... )
resvg — библиотека отрисовки SVG.
Основные изменения:
clipPath
, mask
, pattern
и preserveAspectRatio
.
Краткую сводку о результатах тестирования можно посмотреть здесь.
В двух словах: на данный момент resvg не хуже librsvg, если вам не нужны фильтры (в любом случае тот же blur реализован в librsvg неверно). Производительность приблизительно одинаковая.
Inkscape, с другой стороны, в среднем в 10 раз медленнее и хотя поддерживает больше возможностей SVG (фильтры, маркеры и прочее редко используемое), при этом содержит массу ошибок в реализации базовых примитивов.
>>> Подробности
Сегодня вышел Rust 1.25.0 (2018-03-29).
Rust это системный язык программирования, нацеленный на надёжность, скорость и параллельное выполнение.
Если вы имеете предыдущую версию Rust, установленную через rustup
, для получения версии 1.25.0 достаточно ввести в терминале:
$ rustup update stable
Что нового в 1.25.0 stable
Синтаксис
Данный атрибут позволяет указывать выравнивание
(alignment) для структур:
struct Number(i32);
assert_eq!(std::mem::align_of::<Number>(), 4);
assert_eq!(std::mem::size_of::<Number>(), 4);
#[repr(align(16))]
struct Align16(i32);
assert_eq!(std::mem::align_of::<Align16>(), 16);
assert_eq!(std::mem::size_of::<Align16>(), 16);
use
;Раньше:
use std::fs::File;
use std::io::Read;
use std::path::{Path, PathBuf};
Теперь:
// on one line
use std::{fs::File, io::Read, path::{Path, PathBuf}};
// with some more breathing room
use std::{
fs::File,
io::Read,
path::{
Path,
PathBuf
}
};
enum Foo { A, B, C }
fn main() {
let x = Foo::A;
match x {
| Foo::A
| Foo::B => println!("AB"),
| Foo::C => println!("C"),
}
}
Компилятор
-C lto=val
;
i586-unknown-linux-musl
.
Библиотека
Стабилизированные API
Наиболее значимое событие — это std::ptr::NonNull<T>
. Этот тип похож на *mut T
, но является ненулевым (non-null) и ковариантным. Если вкратце, NonNull<T>
гарантирует, что никогда не будет равен null, а это означает, что Option<NonNull<T>>
имеет тот же размер, что и *mut T
. Если вы создаете структуру данных с небезопасным кодом, NonNull<T>
зачастую будет правильным выбором для вас.
Следующие функции теперь могут быть использованы в константных выражениях, т.е. например, static MINUTE: Duration = Duration::from_secs(60);
:
Cargo
Разное
Примечания по поводу совместимости
>>> Подробности
fselect — это консольная утилита для поиска файлов с помощью выражений, напоминающих SQL. В некоторых случаях может заменить традиционный find.
Преимущества:
Пример:
$ fselect "fsize, modified, path from /home/pupseng depth 3 where size >= 1mb and ( name like '%.jpg' or name like '%.png' )"
1.82 MiB 2018-01-16 13:31:59 /home/pupseng/Pictures/Screenshot from 2018-01-16 13:31:46.png
1.29 MiB 2017-09-05 13:00:02 /home/pupseng/Downloads/Telegram Desktop/image_2017-09-05_12-59-55.png
2.74 MiB 2017-05-31 12:23:31 /home/pupseng/Downloads/Telegram Desktop/IMG_9514.jpg
2.25 MiB 2017-07-28 15:57:44 /home/pupseng/Downloads/Telegram Desktop/image_2017-07-28_15-57-35.png
3.56 MiB 2016-07-04 16:43:13 /home/pupseng/Downloads/fugue.png
7.15 MiB 2016-10-24 12:25:32 /home/pupseng/Natasha/DCIM6807.jpg
Утилита написана на языке программирования Rust и в настоящий момент устанавливается с помощью cargo. Крайне приветствуется помощь в организации сборки пакетов для различных дистрибутивов Linux, а также Mac OS.
Команда Rust рада сообщить о выпуске Rust 1.24.0. Rust — это системный язык программирования, нацеленный на безопасность, быстрое и параллельное исполнение программ.
( читать дальше... )
>>> Подробности
4 января состоялся плановый релиз компилятора и стандартных средств разработки системного языка программирования Rust — 1.23.
Интересные изменения:
rustc
стал потреблять на 5-10% меньше памяти.
rustdoc
перешёл на рендеринг документации при помощи CommonMark. Раньше использовался Hoedown.
cargo uninstall
научился сразу удалять несколько пакетов. Например, команда cargo uninstall foo bar
удалит foo и bar.
auto
трейты теперь разрешены в трейтовых объектах. Один из коммитов этого изменения также окончательно удалил элемент языка send
.
T: Sync
для RwLock<T>: Send
.
T: Sized
для {<*const T>, <*mut T>}::as_ref
и для <*mut T>::as_mut
.
Thread::{park, unpark}
.
SliceExt::binary_search
.
AsciiExt
объявлен устаревшим, а его методы перенесены в примитивные типы.
char::escape_debug
теперь использует Unicode 10 вместо Unicode 9.
TrapUnreachable
.
SliceExt::binary_search
.
rustfmt
включён в основную инсталляцию.
>>> Анонс
libresvg 0.1 представляет собой первый экспериментальный выпуск новой библиотеки для отрисовки (рендеринга) SVG.
Основная цель проекта — заменить librsvg и QtSvg, и стать альтернативой Inkscape для тех, кто использует его для конвертирования SVG в PNG.
В текущей версии новая библиотека уже превосходит QtSvg, но не дотягивает до librsvg по возможностям (нет filter, clipPath, mask, marker, pattern). Тем не менее, поддержка стандарта в libresvg намного лучше, из-за чего базовые элементы, такие как path, gradients, shapes, text, поддерживаются лучше (у librsvg множество ошибок отрисовки).
Основные отличия от librsvg:
В разделе Releases можно скачать демо-приложение для оценки отрисовки для тех, кто не хочет собирать библиотку из исходников. Также в архиве находится консольное приложение для конвертации, альтернатива rsvg-convert.
Так как это первый релиз, то принимается любая критика и предложения по дальнейшему развитию проекта.
>>> Подробности
Соответствующий запрос о слиянии был принят в основную ветку 25 ноября. С этого дня в ночных сборках доступна штатная цель сборки wasm32-unknown-unknown.
Благодаря этому, установив свежую ночную сборку, теперь можно компилировать Rust в WebAssembly без дополнительного инструментария:
rustup update
rustup target add wasm32-unknown-unknown --toolchain nightly
rustc +nightly --target wasm32-unknown-unknown -O hello.rs
Поддержка и документация пока что немного ограничены, но над расширением этой области ведётся активная работа. Также компилятор Rust пока что не имеет хорошего линковщика, так что конечные WebAssembly-сборки будут весьма крупными. Алекс написал небольшой инструмент для уменьшения размера:
cargo install --git https://github.com/alexcrichton/wasm-gc
wasm-gc hello.wasm small-hello.wasm
Полные инструкции можно найти в руководстве по установке wasm32-unknown-unknown.
>>> Источник
Команда языка Rust с радостью представляет две версии языка Rust, 1.22 и 1.22.1. Rust — это системный язык программирования, который нацелен на безопасность, скорость выполнения и параллельное исполнение.
( читать дальше... )
>>> Полный патчноут
Состоялся релиз языка системного программирования Rust.
Итак, новшества:
my_macro!(Vec‹i32›::new); // Так нужно было писать раньше.
my_macro!(Vec::‹i32›::new); // Раньше этот код считался некорректным.
-Ccodegen-units=N
) генератора кода, изменение позволило сильно сократить потребление памяти во время сборки.
rustup component add rls-preview
).
>>> Подробности
20 сентября объявлено о выходе libservo — API для встраивания движка браузера Servo. Демонстрационные программы, написанные с использованием libservo, доступны в репозитории на GitHub.
Со временем libservo API планируется стабилизировать, но сейчас он стабильным не является.
Команда разработчиков Rust с удовольствием объявляет о выходе новой стабильной версии Rust: 1.20.0.
( читать дальше... )
>>> Подробности
Разработчики компании Bitfury Group представили свой собственный фреймворк для разработки приватных блокчейнов Exonum, который позволяет создавать свои безопасные и высокопроизводительные blockchain-решения.
( читать дальше... )
>>> Подробности
Команда Rust рада объявить о последней версии Rust, 1.19.0. Rust это системный язык программирования, сфокусированный на безопасности, скорости и конкурентном выполнении.
>>> Подробности
Команда Rust анонсирует релиз 1.18.
Обновление предыдущей версии легко:
$ rustup update stable
Сам rustup
можно установить здесь.
Основные изменения
( читать дальше... )
>>> Подробности
← предыдущие | следующие → |