#prog #rust #article
Using Rust to write a Data Pipeline. Thoughts. Musings.
<...>
You know, it went better than I expected. Especially for someone like me who has only written about 3 Rust scripts in my entire life. I do have to say, it was not the result I was expecting. I fully intended to find out Rust would be a horrible choice to do normal Data Engineering tasks like HTTP, File Systems, Database calls, etc.
I found the opposite. There was nothing overall complex about any of the code, not tons of boilerplate crud that I expected to encounter with talking with Postgres or getting a file over the wire.
I’m I convinced to throw Python to the trash heap for the mundane Data Engineering tasks and switch to Rust? No. Python’s development and iteration lifecycle is way too easy, you can’t just walk away from that. Is Rust easy to use, easier than most people think, and capable of replacing other code for everyday tasks? Yes.
Using Rust to write a Data Pipeline. Thoughts. Musings.
<...>
You know, it went better than I expected. Especially for someone like me who has only written about 3 Rust scripts in my entire life. I do have to say, it was not the result I was expecting. I fully intended to find out Rust would be a horrible choice to do normal Data Engineering tasks like HTTP, File Systems, Database calls, etc.
I found the opposite. There was nothing overall complex about any of the code, not tons of boilerplate crud that I expected to encounter with talking with Postgres or getting a file over the wire.
I’m I convinced to throw Python to the trash heap for the mundane Data Engineering tasks and switch to Rust? No. Python’s development and iteration lifecycle is way too easy, you can’t just walk away from that. Is Rust easy to use, easier than most people think, and capable of replacing other code for everyday tasks? Yes.
Confessions of a Data Guy
Using Rust to write a Data Pipeline. Thoughts. Musings. - Confessions of a Data Guy
Rust has been on my mind a lot lately, probably because of Data Engineering boredom, watching Spark clusters chug along like some medieval farm worker endlessly trudging through the muck and mire of life. Maybe Rust has breathed some life back into my stagnant…
#prog #rust #rustlib #amazingopensource
Symphonia is a pure Rust audio decoding and media demuxing library supporting AAC, ADPCM, ALAC, FLAC, MKV, MP1, MP2, MP3, MP4, OGG, Vorbis, WAV, and WebM.
Features
* Decode support for the most popular audio codecs with support for gapless playback
* Demux the most common media container formats
* Read most metadata and tagging formats
* Automatic format and decoder detection
* Basic audio primitives for manipulating audio data efficiently
* 100% safe Rust
* Minimal dependencies
* Fast with no compromises in performance!
И последний пункт — не пустой звук: согласно бенчмаркам, производительность сопоставима с FFMpeg (правда, тестировался только однопоточный режим)
Symphonia is a pure Rust audio decoding and media demuxing library supporting AAC, ADPCM, ALAC, FLAC, MKV, MP1, MP2, MP3, MP4, OGG, Vorbis, WAV, and WebM.
Features
* Decode support for the most popular audio codecs with support for gapless playback
* Demux the most common media container formats
* Read most metadata and tagging formats
* Automatic format and decoder detection
* Basic audio primitives for manipulating audio data efficiently
* 100% safe Rust
* Minimal dependencies
* Fast with no compromises in performance!
И последний пункт — не пустой звук: согласно бенчмаркам, производительность сопоставима с FFMpeg (правда, тестировался только однопоточный режим)
GitHub
GitHub - pdeljanov/Symphonia: Pure Rust multimedia format demuxing, tag reading, and audio decoding library
Pure Rust multimedia format demuxing, tag reading, and audio decoding library - pdeljanov/Symphonia
🔥7👍1
Forwarded from я что-то �� и всё ����
🔁 Bash.org.ru (типа)
1: как откасить от армии?
2: замутить с дочкой военкома
1: а если у него мальчик?
2: ну если ты такой принципиальный то иди в армию
1: как откасить от армии?
2: замутить с дочкой военкома
1: а если у него мальчик?
2: ну если ты такой принципиальный то иди в армию
😁20❤3💩2🤡2
Forwarded from Agagagagagagagaggagagaggaggaggaga
Вот сейчас все орут с Яндекса, а они дождутся, когда все самые кривые места разойдутся мемасами по телеге, и отрефакторят все косяки, не вложив ни часа в анализ. Stonks, не иначе
🔥34😁5🤡2🌚1
#prog #rust #rustreleasenotes
Вышла версия Rust 1.67.0! В этот раз заметных изменений не так уж и много. Вот полный список, если что. Как всегда, выпишу только то, что интересно мне.
▪️До стейбла докатилось изменение, о котором я уже писал:
▪️Ещё одно такое изменение: замена реализации MPSC-канала из std.
▪️И ещё одно такого рода: порядок дропа временных значений в цепочках из выражений, соединённых только
▪️И ещё одно:
▪️Трейт Sized стал коиндуктивным. Иными словами, если задача доказать ограничение
Остальное в подробных заметках о релизе.
Вышла версия Rust 1.67.0! В этот раз заметных изменений не так уж и много. Вот полный список, если что. Как всегда, выпишу только то, что интересно мне.
▪️До стейбла докатилось изменение, о котором я уже писал:
#[must_use] на асинхроных функциях теперь предупреждает не только о неиспользуемой футуре, возвращаемой функцией, но и о неиспользуемом возвращённом этой футурой значении.▪️Ещё одно такое изменение: замена реализации MPSC-канала из std.
▪️И ещё одно такого рода: порядок дропа временных значений в цепочках из выражений, соединённых только
&& и соединённых только ||, теперь всегда слева направо, без специального отношения к первому подвыражению.▪️И ещё одно:
NonZero*::BITS.▪️Трейт Sized стал коиндуктивным. Иными словами, если задача доказать ограничение
T: Sized приводит к необходимости доказать это же самое ограничение, образуя цикл в логике, то вместо ошибки компилятор теперь выводит, что тип таки реализует Sized. На практике это означает, что рекурсивные типы, параметризованные типом индирекции, теперь нормально компилируются. Скажем, этот код не компилировался до этого изменения и компилируется после:trait Allocator {
type Allocated<T>;
}
enum LinkedList<A: Allocator> {
Head,
Next(A::Allocated<Self>),
}
▪️Компилятор слегка поумнел в плане вывода типов для замыканий.Остальное в подробных заметках о релизе.
👍11