{"version":"https://jsonfeed.org/version/1","title":"Read Rust - Tools and Applications","home_page_url":"https://readrust.net/","feed_url":"https://readrust.net/tools-and-applications/feed.json","description":"Command line tools and GUI applications written in or for Rust.","author":{"name":"Wesley Moore","url":"https://www.wezm.net/"},"items":[{"id":"188d3002-88c7-4099-8b84-465e9b2cc863","title":"gccrs in 2022","content_text":"The most notable event occuring this year was the merging of gccrs into GCC. Our compiler will now be available in the next GCC release, GCC 13.1, due in April 2023. While the compiler is not yet complete, or even in a usable state, we hope you’ll find joy in experimenting with it, hacking on it, and contributing, either via reporting issues or submitting code.\r\n\r\nWe have attended multiple events, and were delighted to meet so many of you! We are looking forward to doing the same in 2023. Later in this report, you’ll find links to recordings of the talks we gave this year.\r\n\r\nEven further in the report, you’ll find various little statistics around the compiler’s development: Number of bugs, ongoing work, number of tests… We don’t see the amount of bugs almost doubling since 2021 as a bad thing: quite the opposite actually, as it means the compiler is being tested more and more thoroughly, and used by more and more brave people willing to raise these issues. For that, thank you!","url":"https://rust-gcc.github.io/reporting/2022-year-report.html","date_published":"2023-01-11T02:39:16Z","author":{"name":"gccrs"},"tags":["Tools and Applications"]},{"id":"eb7a2a41-69e7-42a8-b250-ede88433f9bb","title":"What Every Rust Developer Should Know About Macro Support in IDEs","content_text":"We, the IntelliJ Rust plugin team, are now partially enabling support for procedural macros, specifically enabling function-like and derive procedural macro expansion by default while hiding support for attribute procedural macros behind the org.rust.macros.proc.attr experimental feature flag. While we mostly refer to the IntelliJ Rust plugin here, the same things apply to your favorite editor powered by rust-analyzer. In fact, we are very similar regarding macro support. Even more importantly, we face the same problems.\r\n\r\nLet’s discuss several fundamental ideas regarding macros and their support in IDEs, including main ideas and approaches, good and bad parts, implementation details, and problems.","url":"https://blog.jetbrains.com/rust/2022/12/05/what-every-rust-developer-should-know-about-macro-support-in-ides/","date_published":"2023-01-07T04:37:45Z","author":{"name":" Vitaly Bragilevsky "},"tags":["Tools and Applications"]},{"id":"ec35d584-970b-498e-9cca-e6aa4e0bb32f","title":"Helix Release 22.12 Highlights","content_text":"Helix is a modal text editor with built-in support for multiple selections, Language Server Protocol (LSP), tree-sitter, and experimental support for Debug Adapter Protocol (DAP).\r\n\r\nToday we cut the 22.12 release. This release is big and featureful and saw contributions from 99 contributors. Thank you all! 🎊","url":"https://helix-editor.com/news/release-22-12-highlights/","date_published":"2022-12-07T06:48:02Z","author":{"name":"Michael Davis"},"tags":["Tools and Applications"]},{"id":"6968d706-d96b-4b22-88a1-54cab54a5a45","title":"From AST to bytecode execution in EndBASIC","content_text":"Since its inception two years ago, the EndBASIC interpreter has been using an AST-based execution\r\nengine. And during all this time, people have mocked the language for not allowing 10 GOTO 10.\r\nWell, fear not: the upcoming 0.10 release has full support for GOTO and GOSUB, features that\r\nwere made possible by moving to a bytecode-based interpreter. Let’s take a peek at what the\r\nproblems were and how I addressed them.","url":"https://jmmv.dev/2022/11/endbasic-bytecode.html","date_published":"2022-11-22T22:38:48Z","author":{"name":"Julio Merino"},"tags":["Tools and Applications"]},{"id":"a3124dcd-6c7d-4312-9a40-dab084b54277","title":"Evaluating Build Scripts in the IntelliJ Rust Plugin","content_text":"Build scripts is a Cargo feature that allows executing any code prior to building a package. We implemented support for build scripts evaluation in the IntelliJ Rust plugin a long time ago, but up until now, we hid it under the org.rust.cargo.evaluate.build.scripts experimental feature. As we are now enabling this feature by default, we’ve decided to explain what it means for our users.","url":"https://blog.jetbrains.com/rust/2022/10/24/evaluating-build-scripts-in-the-intellij-rust-plugin/","date_published":"2022-10-25T09:55:22Z","author":{"name":"Vitaly Bragilevsky"},"tags":["Tools and Applications"]},{"id":"2cbf053c-03f7-4e9c-86a5-97ef38863934","title":"An Invitation to Rust Maintainers","content_text":"A few weeks ago, we at Determinate Systems released Riff, a tool that uses Nix to automatically provide external dependencies for Rust projects. By that we mean dependencies written in other languages—like OpenSSL or the Protobuf compiler—that by definition can’t be installed by Cargo. The developer experience of Rust is widely regarded as one of the best in the business—and we concur!—but external dependencies have been a thorn in the side of the Rust community from the get-go. And so we’re excited to provide a full-fledged solution to this problem in the form of Riff.","url":"https://determinate.systems/posts/riff-rust-maintainers","date_published":"2022-10-06T06:35:34Z","author":{"name":"Luc Perkins"},"tags":["Tools and Applications"]},{"id":"49019bdc-f00a-4ab0-8653-755100b772be","title":"How (and why) nextest uses tokio, part 1","content_text":"Nextest is faster than cargo test for most Rust projects, and provides a number of extra features, such as test retries, reusing builds, and partitioning (sharding) test runs. To power these features, nextest uses Tokio, the leading Rust async runtime for writing network applications.","url":"https://sunshowers.io/posts/nextest-and-tokio-1/","date_published":"2022-10-04T03:54:56Z","author":{"name":"Rain"},"tags":["Tools and Applications"]},{"id":"2ab5a531-a2ca-40a8-a60e-b04ec814a22d","title":"Announcing the Rust Style Team","content_text":"The standard Rust style resulted from development and discussion within the Rust style team, between 2016 and 2018. After publishing the style guide, the Rust style team concluded its active work, by design.\r\n\r\nHowever, as the Rust language develops, we have a regular need for improvements to the style guide, such as to support new language constructs. To solve both of these problems, [RFC 3309](https://rust-lang.github.io/rfcs/3309-style-team.html) has revived the Rust style team, with three goals:\r\n\r\n* Making determinations about styling for new Rust constructs\r\n* Evolving the existing Rust style\r\n* Defining mechanisms to evolve the Rust style while taking backwards compatibility into account","url":"https://blog.rust-lang.org/inside-rust/2022/09/29/announcing-the-rust-style-team.html","date_published":"2022-09-29T23:19:13Z","author":{"name":"Josh Triplett"},"tags":["Tools and Applications"]},{"id":"314e60e2-4220-45fa-a597-7f743e94577e","title":"Sequoia PGP v1.0 Released: The Seedling's a Sapling","content_text":"Version 1.0. It’s here. After three and a half years of development, we are happy to announce the release of version 1.0 of Sequoia!\r\n\r\nThe release includes the low-level crate sequoia-openpgp, and a program to verify detached signatures geared towards software distribution systems called sqv.","url":"https://sequoia-pgp.org/blog/2020/12/16/202012-1.0/","date_published":"2020-12-16T22:04:35Z","author":{"name":"Neal"},"tags":["Tools and Applications","Security"]},{"id":"5a596905-3648-4c9e-bc8c-34f4c1ad99b8","title":"Contributing to Intellij-Rust #2: Intention to substitute an associated type","content_text":"In this post we’ll build a complete intention from scratch, based on one of my recent PRs. It will be a relatively simple intention because there are a lot of concepts that need to be explained along the way. In later posts I want to explain more complicated features, but first we need to understand the basic building blocks of IntelliJ APIs and the general concepts of the plugin. Therefore a lot of this post will be about explaining useful tips and tricks for writing intentions and working with the plugin in general.","url":"https://kobzol.github.io/rust/intellij/2020/08/25/contributing-2-subst-assoc-type-int.html","date_published":"2020-08-31T10:31:54Z","author":{"name":"Jakub Beránek"},"tags":["Tools and Applications"]},{"id":"dac6854e-2c83-4389-831e-8b1e74f810e1","title":"Contributing to Intellij-Rust #1: Fixing bug in Nest Use intention","content_text":"In this post I will go through my very first contribution (don’t click if you want to avoid spoilers!) to the plugin. Not because it is especially interesting, but it’s simple enough that I can explain the complete contribution process. I’ll go through the process of finding an issue, locating code that is relevant to it, writing a test, implementing a fix and sending a PR.\r\n\r\nBecause this is the first post of this series describing an actual contribution, I will talk about the contribution workflow in addition to explaining some basic concepts of the IntelliJ Rust plugin. In later posts I will focus more on explaining the implemented features and the plugin’s inner workings, since the contribution process will be mostly the same.","url":"https://kobzol.github.io/rust/intellij/2020/07/31/contributing-1-nest-use-fix.html","date_published":"2020-08-29T10:59:09Z","author":{"name":"Jakub Beránek"},"tags":["Tools and Applications"]},{"id":"40d75ae3-2b4c-4a4a-b88a-12275fd73638","title":"IntelliJ Rust Changelog #129","content_text":"New update is already here! It brings:\r\n\r\n- 'wasm-pack' run configurations\r\n- Custom templates in 'New Project' dialog\r\n- 'Complete Current Statement' action for functions and structs","url":"https://intellij-rust.github.io/2020/08/24/changelog-129.html","date_published":"2020-08-25T11:14:06Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"e73c5dfc-b0cc-4918-926b-661d89bd83e2","title":"Changelog #39","content_text":"Changelog #39","url":"https://rust-analyzer.github.io/thisweek/2020/08/24/changelog-39.html","date_published":"2020-08-25T11:13:41Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"7ad5456f-296f-48d8-aa2a-ceb0bda9905e","title":"Contributing to Intellij-Rust #0: Intro & setup","content_text":"I’m a big fan of Rust and all the various IntelliJ IDEs and so naturally I am also an avid user of the awesome IntelliJ Rust plugin.\r\n\r\nWhile using the plugin, I noticed some small quirks that were bothering me and some useful features that were missing. I wondered if there was something that I could do to improve that situation, so I checked out the plugin repository to see if there were some issues that I could help with.\r\n\r\nIt turned out that the answer was yes - I found an issue in a comment, sent my first pull request and it got approved and merged in 4 minutes (!). The friendly response I got from the plugin’s maintainers motivated me to continue improving the plugin and over time I found it to be incredibly enjoyable and rewarding - as of today, I have opened more than 100 PRs in the plugin’s repository.\r\n\r\nSince contributing to a non-trivial open-source project can be daunting at first, I decided to document some of my experiences in this blog series to provide information for people that might also want to contribute to this plugin. I was inspired to do this by a similar blog post describing a contribution to Rust Analyzer.","url":"https://kobzol.github.io/rust/intellij/2020/07/31/contributing-0-setup.html","date_published":"2020-08-25T11:04:53Z","author":{"name":"Jakub Beránek"},"tags":["Tools and Applications"]},{"id":"1603aa09-9099-49ec-b507-76b87eb56e0d","title":"My terminal became more Rusty 🦀","content_text":"As a Software-Engineer I spent most of the time inside my terminal, So I need for that a fast terminal with fast tools to speed up my productivity.\r\n\r\nThe tools written in Rust help me to achieve that. Let's see in this article those tools.","url":"https://mahmoudashraf.dev/blog/my-terminal-became-more-rusty","date_published":"2020-08-24T09:43:13Z","author":{"name":"Mahmoud Ashraf"},"tags":["Tools and Applications"]},{"id":"5397349c-79f7-478f-86d3-f9ec403817c9","title":"One year of Nushell","content_text":"Hard to imagine that it’s already been a year since Nu first went public. At the time, it was largely a demo of what could be possible, but still needed quite a bit of work to make it ready for everyday use. A year later and we’ve learned a lot, and made a few mistakes along the way. In this post, we look back over the year and see how we did and where we might be going in the future.","url":"http://www.nushell.sh/blog/2020/08/23/year_of_nushell.html","date_published":"2020-08-24T06:59:15Z","author":{"name":"The Nu Authors"},"tags":["Tools and Applications"]},{"id":"206eabaa-5aec-4b8e-b86f-3e48b055b671","title":"Stackage for Rust?","content_text":"Every once in a while, a friend will share a comment from social media discussing in broad terms Stackage and Rust. As the original founder of the Stackage project, it’s of course fun to see other languages discussing Stackage. And as a Rustacean myself, it’s great to see it in the context of Rust.\r\n\r\nThis topic has popped up enough times now, and I’ve thought about it off-and-on for long enough now, that I thought a quick blog post on the topic would make sense.","url":"https://www.snoyman.com/blog/2020/08/stackage-for-rust","date_published":"2020-08-20T10:14:12Z","author":{"name":"Michael Snoyman"},"tags":["Tools and Applications"]},{"id":"a998adac-ce22-4ed4-80e7-c558226451cc","title":"probe-run, run embedded Rust apps like native apps","content_text":"Today we are pleased to announce the public release of probe-run, a custom Cargo runner for embedded development. This host application integrates into your Cargo workflow and lets you cargo run embedded applications. Let's see how to use it for ARM Cortex-M application development.","url":"https://ferrous-systems.com/blog/probe-run/","date_published":"2020-08-18T10:31:07Z","author":{"name":"Jorge"},"tags":["Embedded","Tools and Applications"]},{"id":"85600cab-2f6e-41ae-8a03-871575798b1f","title":"Using Rust to Delete Gitignored Cruft","content_text":"I have a problem - my SSD is always running out of space. Part of the problem is build system cruft. Over time I accumulate repos and projects full of temp files and build artifacts. These files are sprinkled across many folders which makes them difficult to identify and delete.\r\n\r\nTo help solve my problem I wrote a tool - fts_gitignore_nuke. The goal of this tool is to identify files masked by .gitignore and delete them.","url":"https://www.forrestthewoods.com/blog/using-rust-to-delete-gitignored-cruft/","date_published":"2020-08-13T09:55:44Z","author":{"name":"Forrest Smith"},"tags":["Tools and Applications"]},{"id":"a44c4f10-4650-4883-bd79-648646552c0d","title":"rd: A port of mozilla/rr to Rust","content_text":"mozilla/rr is an excellent record/replay debugger written in C/C++.\r\n\r\nOver the last few months I've been working on porting rr to the Rust programming language. The port is still in-progress but many things work already.\r\n\r\nThe project is called \"The Record and Debug tool\" or \"rd\" for short. The repo is available on GitHub. It already has 30k+ lines of ported over Rust code.\r\n\r\nI was somewhat inspired by the technical discussion in a mozilla/rr ticket about porting rr to Rust even though at that point in time, I was not really a fan of the Rust programming language (though I am now!)\r\n\r\nI hope to write a longer post about my experiences while porting rr to Rust. For today I just want to share some of the reasons why I embarked on this journey.","url":"https://github.com/sidkshatriya/me/blob/master/001-rd-intro.md","date_published":"2020-08-13T09:39:03Z","author":{"name":"Sidharth Kshatriya"},"tags":["Tools and Applications"]},{"id":"03d25763-69e4-4cbb-8af8-c448736ea001","title":"IntelliJ Rust Changelog #128","content_text":"In the latest release:\r\n\r\n- New 'WebAssembly Lib' project template\r\n- Handy intention to import a qualified name via 'use'\r\n- associated_type_bounds now supported in type inference.","url":"https://intellij-rust.github.io/2020/08/10/changelog-128.html","date_published":"2020-08-11T10:38:23Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"cc2763be-49af-4e00-9865-4f131df79f87","title":"GNOME Builder ❤️ Rust Analyzer Part 2","content_text":"As promised I wanted to show off the remaining features which found their way into GNOME Builder. Be warned this is a Video heavy post!","url":"https://www.gunibert.de/posts/builder_and_analyzer_2/","date_published":"2020-08-10T10:44:14Z","author":{"name":"Günther Wagner"},"tags":["Tools and Applications"]},{"id":"653b4025-30e4-41dd-84de-fe35d6f0dff6","title":"This Month in Mun - July 2020","content_text":"After the dust settled of the Mun v0.2 release, the focus of this month has been on fixing several issues found by community members, improving the overall quality of the code base and working towards our next release: Mun v0.3.","url":"https://mun-lang.org/blog/2020/07/30/this-month-july/","date_published":"2020-08-10T10:41:25Z","author":{"name":"The Mun Team"},"tags":["Tools and Applications"]},{"id":"86d1acf8-3251-4d44-89f3-b87ff68ebbef","title":"meli v0.6.0 alpha release","content_text":"A new alpha version is up for test/review. It’s starting to look like a real client! Some highlights are:\r\n\r\n* Support for async IO using the smol runtime. IMAP backend is now async.\r\n* imap: add server_password_command\r\n* Add optional SMTP client. Instead of using an external command (I was using msmtp for example) meli can connect to an SMTP server by itself. See documentation for send_mail option.\r\n* Custom themes\r\n\r\nI managed to compile meli to WebAssembly, and made an online demo so that you can get a feel for it without having to download/build it first. It’s not perfect, but it works.","url":"https://meli.delivery/posts/2020-07-29-v0.6-alpha-release.html","date_published":"2020-08-05T10:08:51Z","author":{"name":"epilys"},"tags":["Tools and Applications"]},{"id":"0cc1a500-f686-4f13-905a-2832cd45a953","title":"1Password for Linux development preview","content_text":"A full-featured Linux desktop app has been our most requested feature by far and responsible for the longest forum post in our history. Today we’re thrilled to announce that 1Password is coming to Linux!\r\n\r\nOur new app is built to meet the security and performance expectations of Linux users. Its backend is written completely in Rust, a secure systems programming language that has made a lot of waves in the Linux community. We’re especially proud to be using the incredible ring crypto library to power the end-to-end encryption that keeps your data safe.","url":"https://discussions.agilebits.com/discussion/114964/1password-for-linux-development-preview","date_published":"2020-08-04T22:13:47Z","author":{"name":"Dave Teare "},"tags":["Tools and Applications"]},{"id":"0f0a85c5-85b3-4cc5-9780-8b4324658c98","title":"Rewritten in Rust: Modern Alternatives of Command-Line Tools","content_text":"Shell is the essential tool for every programmer. The more familiar you become with the available tools, the more efficient you can be with using your computer. Here's a list of command-line tools written in Rust that aim to provide modern, often much faster, alternatives to the existing shell commands.","url":"https://zaiste.net/posts/shell-commands-rust/","date_published":"2020-08-04T10:15:06Z","author":{"name":"Jakub Neander"},"tags":["Tools and Applications"]},{"id":"8dfaccaf-927b-47f9-9403-f03d6ad075d9","title":"Rustacean.app: a unofficial statusbar app for Rust & macOS","content_text":"Rustacean.app is a unofficial statusbar app for Rust & macOS. It provides an easy installation experience for Rust as well as some handy developer utilities through its statusbar menu.","url":"https://github.com/XAMPPRocky/Rustacean.app","date_published":"2020-08-04T10:08:39Z","author":{"name":"XAMPPRocky "},"tags":["Tools and Applications"]},{"id":"73c8d172-d3ba-45fc-bf63-e38c422558ff","title":"IntelliJ Rust: Updates for the 2020.2 Release – CLion Blog","content_text":"Read on to learn about the latest updates in the IntelliJ Rust plugin:\r\n\r\n* New macro expansion engine\r\n* Debugging for Rust’s MSVC\r\n* Initial support for or_patterns\r\n* New refactorings","url":"https://blog.jetbrains.com/clion/2020/08/intellij-rust-updates-for-the-2020-2-release/","date_published":"2020-08-04T09:51:34Z","author":{"name":"Marina Kalashina"},"tags":["Tools and Applications"]},{"id":"7de827c7-9062-445a-b46b-fa866ddadd1e","title":"Alacritty Version 0.5.0 Release","content_text":"Added\r\n\r\n* Default Command+N keybinding for SpawnNewInstance on macOS\r\n* Vi mode for regex search, copying text, and opening links\r\n* CopySelection action which copies into selection buffer on Linux/BSD\r\n* Option cursor.thickness to set terminal cursor thickness\r\n* Font fallback on Windows\r\n* Support for Fontconfig embolden and matrix options\r\n* Opt-out compilation flag winpty to disable WinPTY support\r\n* Scrolling during selection when mouse is at top/bottom of window\r\n* Expanding existing selections using single, double and triple click with the right mouse button\r\n* Support for gopher and gemini URLs\r\n* Unicode 13 support\r\n* Option to run command on bell which can be set in bell.command\r\n* Fallback to program specified in $SHELL variable on Linux/BSD if it is present","url":"https://blog.christianduerr.com/alacritty_0_5_0_announcement.html","date_published":"2020-08-02T00:23:57Z","author":{"name":"Christian Duerr"},"tags":["Tools and Applications"]},{"id":"9361834c-36ab-477f-a75f-bf0098e0dfa8","title":"tihle: a unique TI calculator emulator","content_text":"Today I’m publishing tihle, a new emulator targeting TI graphing calculators (currently only the 83+, but maybe others later). There’s rather a lot to say about it, but here I will discuss the motivation for a new emulator and the state of the art followed by technical notes on the design and initial development process.","url":"https://www.taricorp.net/2020/introducing-tihle/","date_published":"2020-07-30T12:03:38Z","author":{"name":"Peter Marheine"},"tags":["Operating Systems","Tools and Applications"]},{"id":"bb3c4ca0-c202-40ce-a608-efaa0fd60b28","title":"Ballista Distributed Compute: One Year Later","content_text":"One year ago, over the July 4th weekend, I started again with a new project named “Ballista”. The idea was to build on the foundations provided by Apache Arrow and DataFusion and demonstrate the potential of a distributed compute platform implemented in Rust. I put together a neat little demo and it got a lot of interest but it was just a demo, and the project stagnated for a long time.\r\n\r\nHowever, six months ago, I took a step back and started rebuilding Ballista from scratch starting with a new architecture.\r\n\r\nI am happy to announce that I have finally released a version of Ballista that truly supports distributed queries. I don’t want to oversell the capabilities of the current release. It should be viewed as a proof-of-concept still since it only supports a small number of operators and expressions, but it is sufficient to run something very close to TPCH query 1.","url":"https://andygrove.io/2020/07/ballista-one-year-on/","date_published":"2020-07-29T09:54:20Z","author":{"name":"Andy Grove"},"tags":["Tools and Applications"]},{"id":"8388d49f-fa9f-45f2-8302-dc58849cced3","title":"NewFlash GTK RSS Reader 1.0 Release","content_text":"NewsFlash is a complete rewrite of the FeedReader application in Rust.\r\n\r\nThe idea of a larger overhaul of the code base was already formed quite some time ago as this Wiki page documents. Around the same time I started to look into Rust. As a first learning exercise I ported the integrated content grabber of FeedReader to rust as a separate crate. With the first crate turning out half decent I started the mammoth task of rewriting all of FeedReader.","url":"https://jangernert.gitlab.io/blog/posts/news-flash/","date_published":"2020-07-29T09:39:36Z","author":{"name":"Jan Lukas Gernert"},"tags":["Tools and Applications"]},{"id":"e133e804-e763-4907-9fcf-d30f572cfb55","title":"Broot content search","content_text":"An example of an efficient search workflow based on broot, a general purpose file manager.","url":"https://dystroy.org/blog/broot-c-search/","date_published":"2020-07-29T09:34:19Z","author":{"name":"Denys Séguret"},"tags":["Tools and Applications"]},{"id":"17afb605-065d-41e4-a90c-98e169b2697a","title":"IntelliJ Rust Changelog #127","content_text":"Time to update! In this release:\r\n\r\n- rendered doc comments in the editor,\r\n- initial implementation of the TOML formatter,\r\n- quick-fix for 'Mismatched types' on local variables.\r\n","url":"https://intellij-rust.github.io/2020/07/27/changelog-127.html","date_published":"2020-07-28T23:29:32Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"31a88d66-3195-46d6-9e8f-fa8c5b2ba2e4","title":"unrpa_rs - A command line utility & library to extract RenPy archives","content_text":"In this post I want to introduce unrpa_rs which is a command line utility and library to extract RenPy archives (RPAs), written in the Rust programming language. This can be used to extract various assets that have been bundled in the RPA format. Currently RPAv3.2, RPAv3, and RPAv2 are supported.\r\n\r\nFor a long time I was interested in building something with Rust, however, up until now I never found the time to actually do that. After finishing my bachelor thesis last semester I finally had enough time to start this little side project to get better acquainted with Rust.\r\n\r\nTo start with the right level of difficulty I found a repo on github called rpatool which is Python tool create, modify and extract RenPy archive files. RenPy is an open source Python game engine to primarily create visual novels. Thus, with the basic functionality already known, I decided to implement the extraction functionality in Rust.","url":"https://blog.l0g4n.me/post/unrpa_rs/","date_published":"2020-07-27T09:27:50Z","author":{"name":"L0g4n"},"tags":["Tools and Applications"]},{"id":"68f358a2-f572-4e15-a120-9a8dcf451b91","title":"Announcing rusty-man, a command-line viewer for rustdoc documentation","content_text":"rusty-man is a command-line viewer for documentation generated by rustdoc. It parses the HTML output of rustdoc, searches for a given keyword and formats the documentation similar to a manpage.","url":"https://users.rust-lang.org/t/announcing-rusty-man-a-command-line-viewer-for-rustdoc-documentation/46315","date_published":"2020-07-25T10:05:32Z","author":{"name":"ireas"},"tags":["Tools and Applications"]},{"id":"dc779750-061c-4e39-bb91-bb5d68ff7521","title":"dijo: scriptable, curses-based, digital habit tracker","content_text":"dijo is a habit tracker. It is curses-based, it runs in your terminal. dijo is scriptable, hook it up with external programs to track events without moving a finger. dijo is modal, much like a certain text editor.","url":"https://github.com/NerdyPepper/dijo","date_published":"2020-07-22T11:52:18Z","author":{"name":"Akshay"},"tags":["Tools and Applications"]},{"id":"bb410c8f-c42f-4946-9ce4-53add2aaee70","title":"Three Architectures for a Responsive IDE","content_text":"In this post, we’ll learn how to make a snappy IDE, in three different ways :-) It was inspired by this excellent article about using datalog for semantic analysis: https://petevilter.me/post/datalog-typechecking/ The post describes only the highest-level architecture. There’s much more to implementing a full-blown IDE.\r\n\r\nSpecifically, we’ll look at the backbone infrastructure of an IDE which serves two goals:\r\n\r\n* Quickly accepting new edits to source files.\r\n* Providing type information about currently opened files for highlighting, completion, etc.","url":"https://rust-analyzer.github.io/blog/2020/07/20/three-architectures-for-responsive-ide.html","date_published":"2020-07-22T02:33:44Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"ccca45c8-915c-4508-91a3-10fbb68c6c79","title":"Nushell 0.17.0","content_text":"Just released 0.17.0! New in this release: webassembly support, custom keybindings, benchmarking, if, moving columns, lots of new commands and improvements.\r\n","url":"https://www.nushell.sh/blog/2020/07/21/nushell_0_17_0.html","date_published":"2020-07-22T02:32:32Z","author":{"name":"The Nu Authors"},"tags":["Tools and Applications"]},{"id":"ac43de38-c75d-4077-8947-410c99c66324","title":"deno internal organization","content_text":"These are notes I took while watching Ryan Dahl's Deno Israel talk which can be found online here. He explains the internal organization of the Deno project.","url":"https://dev.to/ajcwebdev/deno-internal-organization-10mj","date_published":"2020-07-17T08:39:08Z","author":{"name":"Anthony Campolo"},"tags":["Tools and Applications"]},{"id":"95133608-233a-4841-a793-67446e594476","title":"IntelliJ Rust 0.3: New Macro Expansion Engine","content_text":"IntelliJ Rust has reached a major milestone: the new macro expansion engine has moved out of the experimental stage and is now enabled by default. In this post, we’ll take a closer look at its implementation details and the features it brings for your code.","url":"https://blog.jetbrains.com/clion/2020/07/intellij-rust-0-3-new-macro-expansion-engine/","date_published":"2020-07-15T11:43:52Z","author":{"name":"Marina Kalashina"},"tags":["Tools and Applications"]},{"id":"d84010e2-40db-4c3e-9c84-1a8a0ab46f3c","title":"An online book, “Writing Interpreters in Rust: a Guide”","content_text":"A couple of years ago I wrote a proposal on IRLO to start a working group for programming languages written in Rust.\r\n\r\nAn organization was started on Github and some skeleton repositories created. A few folk pitched in with some early discussion in Gitter and Github issues.\r\n\r\nWe didn’t have a coherent direction though until Yorick Peterse suggested writing a book on the topic of writing an interpreter in Rust.","url":"https://pliniker.github.io/post/rust-hosted-langs/","date_published":"2020-07-12T23:57:00Z","author":{"name":"Peter Liniker"},"tags":["Tools and Applications"]},{"id":"17921747-a4dc-4ecf-9109-e4fd83fd31de","title":"Tokei 12","content_text":"Tokei 12 comes with some of the biggest user facing changes since 1.0, now in the latest version tokei will now analyse and count multiple languages embedded in your source code as well as adding support for Jupyter Notebooks. Now for the first time is able to handle and display different languages contained in a single source file. This currently available for a limited set of languages, with plans to add more support for more in the future.","url":"https://github.com/XAMPPRocky/tokei/releases/tag/v12.0.0","date_published":"2020-07-08T01:46:03Z","author":{"name":"XAMPPRocky"},"tags":["Tools and Applications"]},{"id":"bc1c917a-9ebd-4acc-bacf-a5fb79ed1c30","title":"Changelog #31","content_text":"Lots of internal improvements!\r\n\r\n@sheevink implemented new IR which makes from-scratch analysis up to 30% faster. We also implemented new Virtual File System and are getting ready for dynamic project reloading!","url":"https://rust-analyzer.github.io/thisweek/2020/06/29/changelog-31.html","date_published":"2020-07-02T11:40:33Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"b30c0d65-e8f8-4635-9620-1bfa102bee79","title":"IntelliJ Rust Changelog #125","content_text":"Besides the MSVC debugger, our latest release includes:\r\n\r\n- Advanced highlighting inside macro call bodies (with the experimental engine)\r\n- Initial version of the 'Move File' refactoring\r\n\r\nAnd a lot more!","url":"https://intellij-rust.github.io/2020/06/29/changelog-125.html","date_published":"2020-07-02T11:40:08Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"8bdbe0e1-9da0-4cbf-91b1-29a8398426ba","title":"Nushell 0.16.0","content_text":"Release 0.16.0 is now available! New textview, faster table drawing, configurable prompts, math commands, random commands, an RFC process, and tons of improvements.","url":"https://www.nushell.sh/blog/2020/06/30/nushell_0_16_0.html","date_published":"2020-07-02T11:37:35Z","author":{"name":"The Nu Authors"},"tags":["Tools and Applications"]},{"id":"7f894384-cd55-46d4-8183-2fc83c06c304","title":"GNOME Builder ❤️ Rust Analyzer Part 1","content_text":"In the last month I actively worked on something I would like to present in this blog post. I thought the LSP specification should be similar in most editors (without knowing a thing) and therefore I investigated my favourite editor: GNOME Builder. In fact I saw immediately that there are still rough edges regarding the LSP implementation. And still no Rust Analyzer plugin available.","url":"https://www.gunibert.de/posts/builder_and_analyzer/","date_published":"2020-06-30T07:33:54Z","author":{"name":"Günther Wagner"},"tags":["Tools and Applications"]},{"id":"73fdde15-17c0-4be5-9d9a-80b5bbb9c76c","title":"Castor: A browser for the small Internet","content_text":"A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols.","url":"https://sr.ht/~julienxx/Castor/","date_published":"2020-06-26T00:32:34Z","author":{"name":"julienxx"},"tags":["Tools and Applications"]},{"id":"5492ba2f-da43-417b-84f2-d7dc3fd90473","title":"Changelog #30","content_text":"Goto type definition from type popup.","url":"https://rust-analyzer.github.io//thisweek/2020/06/22/changelog-30.html","date_published":"2020-06-23T22:05:06Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"79b146f3-0090-4968-b51e-8c3298527ea0","title":"IntelliJ Rust Changelog #124","content_text":"The latest release brings:\r\n\r\n- Compatibility with 2020.2 EAPs\r\n- Initial version of the 'Inline method' refactoring\r\n- Completion for path-like strings in function arguments\r\n- .some, .ok, and .err postfix templates for Result and Option wrappings\r\n","url":"https://intellij-rust.github.io/2020/06/15/changelog-124.html","date_published":"2020-06-19T00:46:08Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"bbff80a8-17c3-4f8c-a013-acaff5cdd53a","title":"Changelog #29","content_text":"First non-trivial refactor which fixes up call-sites, \"extract enum variant into struct\".","url":"https://rust-analyzer.github.io/thisweek/2020/06/15/changelog-29.html","date_published":"2020-06-16T07:39:15Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"85c753ac-c51c-4991-b3b7-ecc4870464fc","title":"IntelliJ Rust Changelog #123","content_text":"Check out the new release:\r\n\r\n- 'Replace with block/EOL comment' intention \r\n- Breadcrumbs with control flow statements\r\n- Debugger in IntelliJ IDEA can be downloaded automatically, and loading won't interrupt your debug session.","url":"https://intellij-rust.github.io/2020/06/01/changelog-123.html","date_published":"2020-06-10T11:09:01Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"6085ea1d-4550-4986-adf3-91c05c01cecb","title":"Nushell 0.15.0","content_text":"Today, we’re releasing 0.15 of Nu - and it has a few last-minute surprises we hope you’ll find as much fun as we do.\r\n\r\nAs many of you know, this release was delayed as part of a wide-spread effort to elevate Black voices and raise awareness of police violence, a movement which has now grown worldwide. We encourage you to take time to understand what this movement stands for, why it’s happening, and to get involved where you can.\r\n\r\nWith 0.15, we’ve closed another set of gaps in what people need in a shell. We’re looking to continue improving completions, as well as growing the parser to support Nu scripts not just line-by-line, but as whole source files. We’re also working on improving jupyter support, file encoding for better support across languages, and more.","url":"https://www.nushell.sh/blog/2020/06/09/nushell_0_15_0.html","date_published":"2020-06-10T11:08:12Z","author":{"name":"The Nu Authors"},"tags":["Tools and Applications"]},{"id":"57cf3c0f-556c-4d66-998d-8c39b6896575","title":"Changelog #28","content_text":"New features:\r\n\r\n#4711 don’t pass --all-features by default, use Cargo’s default features instead.\r\n#4720 highlight unsafe operations inside unsafe blocks.\r\n\r\nand more.","url":"https://rust-analyzer.github.io/thisweek/2020/06/08/changelog-28.html","date_published":"2020-06-10T11:06:42Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"15f81a8c-fe36-416f-b45a-7c19971be98f","title":"This Month in Mun - May 2020","content_text":"This month marked the release of a new version of Mun. It took us quite some time but after almost half a year, Mun v0.2 is out now! The most important feature of Mun v0.2? We now support hot reloadable structs.","url":"https://mun-lang.org/blog/2020/05/31/this-month-may/","date_published":"2020-06-02T09:27:51Z","author":{"name":"The Mun Team"},"tags":["Tools and Applications"]},{"id":"f0333400-1722-4486-a7a0-22d0028406ce","title":"gitea-release Tool Announcement","content_text":"I’m a big fan of automating things that can possibly be automated. One of the biggest pains that I’ve consistently had is creating/tagging releases of software. This has been a very manual process for me. I have to write up changelogs, bump versions and then replicate the changelog/versions in the web UI of whatever git forge the project in question is using. This works great at smaller scales, but can quickly become a huge pain in the butt when this needs to be done more often. Today I’ve written a small tool to help me automate this going forward, it is named gitea-release. This is one of my largest Rust projects to date and something I am incredibly happy with. I will be using it going forward for all of my repos on my gitea instance tulpa.dev.","url":"https://christine.website/blog/gitea-release-tool-2020-05-31","date_published":"2020-06-02T09:26:17Z","author":{"name":"Christine Dodrill"},"tags":["Tools and Applications"]},{"id":"259974a4-9fa2-45a7-8501-2dbd68562b6d","title":"ktrl: A Supercharged Keyboard Programming Daemon","content_text":"ktrl is a Linux keyboard programming daemon. It aims to aid you in the never-ending quest of achieving the ultimate keybinding setup. You can dip your toes by remapping a few modifier keys (e.g CapLock to Ctrl). Or you can go all-in by creating a sophisticated layering setup with dual-function keys, tap-dancing, etc... ktrl is heavily inspired by the amazing open-source keyboard firmware project QMK. You can think of ktrl as an attempt to re-implement QMK as a Linux daemon.","url":"https://github.com/ItayGarin/ktrl","date_published":"2020-05-31T00:54:42Z","author":{"name":"Itay Garin"},"tags":["Tools and Applications"]},{"id":"e127837b-ea10-4f40-8e9a-49d71ed75454","title":"Changelog #26","content_text":"In the effort to improve support for all editors, and to speedup acceptance of rust-analyzer extensions to the Language Server Protocol, all extensions are now documented.\r\n\r\nIf you maintain rust-analyzer plugin for some editor, consider implementing these extensions and giving feedback for the corresponding upstream issue at Microsoft/language-server-protocol. Additionally, consider subscribing to #4604, which will announce all future extensions and changes. Note that we don’t have any compatibility guarantees yet — all our extensions are subject to change on a short notice.","url":"https://rust-analyzer.github.io/thisweek/2020/05/25/changelog-26.html","date_published":"2020-05-26T21:29:23Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"bb66d067-5e8e-4477-9b56-4cae3d876dda","title":"What’s New in IntelliJ Rust","content_text":"In this post, we’ll take a look at the updates that IntelliJ Rust has received over the 2020.1 release cycle.\r\n\r\nBut before we start, we have an exciting announcement that we would like to share. It is now possible to debug your Rust code in IDEs other than CLion!","url":"https://blog.jetbrains.com/clion/2020/05/whats-new-in-intellij-rust/","date_published":"2020-05-21T22:17:37Z","author":{"name":"Marina Kalashina"},"tags":["Tools and Applications"]},{"id":"84eedb14-740e-442b-a2b2-68bede4ce1d2","title":"IntelliJ Rust Changelog #122","content_text":"Most of the new features in the release have been added by third-party contributors. Many thanks to @Kobzol for the extraordinary amount of contributions!","url":"https://intellij-rust.github.io/2020/05/19/changelog-122.html","date_published":"2020-05-19T20:41:46Z","author":{"name":"IntelliJ Rust"},"tags":["Tools and Applications"]},{"id":"b6b02291-10eb-43b1-bcc8-f1cd7d769b7d","title":"NuShell: the shell where traditional Unix meets modern development, written in Rust","content_text":"Shells have been around forever and, for better or for worse, haven’t changed much since their inception. Until NuShell appeared to reinvent shells and defy our muscle memory. It brought some big changes, which include rethinking how pipelines work, structured input/output, and plugins.\r\n\r\nWe wanted to learn more about NuShell so we interviewed both of its creators: Jonathan Turner and Yehuda Katz.","url":"https://notamonadtutorial.com/nushell-the-shell-where-traditional-unix-meets-modern-development-written-in-rust-caf92c2c7c98","date_published":"2020-05-15T00:57:29Z","author":{"name":"Federico Carrone"},"tags":["Tools and Applications"]},{"id":"42728b2a-9847-409b-91bb-d0ff286f8825","title":"Nushell 0.14.0","content_text":"Fresh off the presses: 0.14.0! Now with temporary environment variables, a calendar, examples in help, lots of new commands, subcommands, speedups, and tons of bugfixes and polish.\r\n","url":"https://www.nushell.sh/blog/2020/05/12/nushell_0_14_0.html","date_published":"2020-05-15T00:54:34Z","author":{"name":"The Nu Authors"},"tags":["Tools and Applications"]},{"id":"6ec202cf-6501-4ec3-a281-f808e4a1380f","title":"Changelog #24","content_text":"New assist to do OK-wrapping!","url":"https://rust-analyzer.github.io/thisweek/2020/05/11/changelog-24.html","date_published":"2020-05-15T00:53:19Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"41b577ad-4f1a-48aa-af73-95bac760ed23","title":"Deno 1.0","content_text":"Dynamic languages are useful tools. Scripting allows users to rapidly and succinctly tie together complex systems and express ideas without worrying about details like memory management or build systems. In recent years programming languages like Rust and Go have made it much easier to produce sophisticated native machine code; these projects are incredibly important developments in computer infrastructure. However, we claim it is still important to have a powerful scripting environment that can address a wide range of problem domains.\r\nJavaScript is the most widely used dynamic language, operating on every device with a web browser.\r\n\r\nOur original undertaking in this area, Node.js, proved to be a very successful software platform. People have found it useful for building web development tooling, building standalone web servers, and for a myriad of other use-cases. Node, however, was designed in 2009 when JavaScript was a much different language. Out of necessity, Node had to invent concepts which were later taken up by the standards organizations and added to the language differently. In the presentation Design Mistakes in Node, this is discussed in more detail.\r\n\r\nWith the changing JavaScript language, and new additions like TypeScript, building Node projects can become an arduous endeavor, involving managing build systems and other heavy handed tooling that takes away from the fun of dynamic language scripting. Furthermore the mechanism for linking to external libraries is fundamentally centralized through the NPM repository, which is not inline with the ideals of the web.\r\n\r\nWe feel that the landscape of JavaScript and the surrounding software infrastructure has changed enough that it was worthwhile to simplify. We seek a fun and productive scripting environment that can be used for a wide range of tasks.","url":"https://deno.land/v1","date_published":"2020-05-14T09:45:07Z","author":{"name":"Ryan Dahl, Bert Belder, and Bartek Iwańczuk"},"tags":["Tools and Applications"]},{"id":"16ce4fef-383e-46a9-bad6-4f5cd9f8ecd5","title":"gitui release: terminal ui for git written in rust","content_text":"Today it is time to announce gitui. Over the last couple of weeks, my side project was this little tool. gitui is becoming my GUI alternative for using git. So far it only supports a few features but my goal is to extend it as needed. My focus is not to build a git cli substitute though, gitui is supposed to help out on tasks that are cumbersome to do on the cli for pure mortals like me.","url":"http://extrawurst.github.io/general/2020/05/08/gitui-release.html","date_published":"2020-05-14T09:37:10Z","author":{"name":"Stephan Dilly"},"tags":["Tools and Applications"]},{"id":"ff74e779-d982-444e-8e2e-0ba4442f3f38","title":"First Release","content_text":"I am pleased to announce the first alpha release of rust-analyzer — a new \"IDE backend\" for the Rust programming language. Wait a second…​ Haven’t people been using rust-analyzer for a long time now?\r\nWell, yes, but we’ve never actually made a release announcement, so here’s one!\r\nBetter late than never :-)","url":"https://rust-analyzer.github.io//blog/2020/04/20/first-release.html","date_published":"2020-04-28T03:01:20Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"9147f823-60cf-4ab3-bf9a-8efad4559d71","title":"Open-sourcing dotenv-linter: a lightning-fast tool to lint .env files","content_text":"dotenv-linter, a lightning-fast tool to check your .env files for problems. dotenv-linter is written in Rust and can be used on any project regardless of the programming language.","url":"https://evrone.com/dotenv-linter","date_published":"2020-04-23T07:48:58Z","author":{"name":"evrone"},"tags":["Tools and Applications"]},{"id":"fe64b5c0-b26e-4091-8f23-e076413ce9aa","title":"Nushell 0.13.0","content_text":"We’re excited to release version 0.13.0 of Nu! This is by far one the the biggest releases, yet. Nu 0.13.0 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu.","url":"https://www.nushell.sh/blog/2020/04/21/nushell_0_13_0.html","date_published":"2020-04-23T07:40:08Z","author":{"name":"The Nu Authors"},"tags":["Tools and Applications"]},{"id":"9af3ef54-80c4-4b6b-b23e-f66a9b93e508","title":"Changelog #21","content_text":"New features:\r\n\r\n* Initial support for proc-macros \r\n* Switch to Chalk recursive solver. This significantly improves type inference when associated types are involved, for example, iterators.\r\n* Add unresolvedReference semantic tag for names which rust-analyzer fails to resolve.\r\n","url":"https://rust-analyzer.github.io/thisweek/2020/04/20/changelog-21.html","date_published":"2020-04-21T10:44:29Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"94fefd29-0376-4555-9b61-21633b0df4c2","title":"New process-viewer release: processes disk usage","content_text":"The new process-viewer version is here! It follows the sysinfo release which added processes' disk I/O usage information. The processes tab now has a new column \"disk I/O usage\".","url":"https://blog.guillaume-gomez.fr/articles/2020-04-18+New+process-viewer+release%3A+processes+disk+usage","date_published":"2020-04-21T10:42:36Z","author":{"name":"Guillaume Gomez"},"tags":["Tools and Applications"]},{"id":"1677527f-9653-48fd-b453-9a28494c4a97","title":"Changelog #20","content_text":"New Features\r\n\r\n- new release strategy: we now just promote Sunday’s nightly to stable.\r\n- enables semantic highlighting by default.\r\n- show native rust-analyzer’s diagnostics for not exhaustive patterns.\r\nAs a reminder, all rust-analyzer diagnostics can be disabled with \"rust-analyzer.diagnostics.enable\" setting.\r\n- Reorder record fields assist to sort the fields in the declaration order.\r\n- improve documentation for Sublime Text.\r\n- process cfg attributes on fields and methods.\r\n- add more heuristics for hiding obvious param hints.\r\n- handle patterns with ellipsis.\r\n- generated trait methods now use todo! rather than unimplemented!.\r\n","url":"https://rust-analyzer.github.io//thisweek/2020/04/13/changelog-20.html","date_published":"2020-04-15T22:06:09Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"6d71f1ca-d161-4027-b4b0-72a2ff8dd057","title":"Implementing a Job queue with Tokio, PostgreSQL & ZeroMQ","content_text":"One of the challenges I have had with on premise solutions is the lack of reliable environments and constrained resources. Not only are you limited in your ability to control things, you need to ensure that things continue on in the case of failure.\r\n\r\nI was tasked with rewriting the job processing pipeline for my company's product, SchoolBench, to ensure a greater level of robustness in the case of service or system failure.\r\n\r\nThis article steps through an approach to this using async rust & the help of tokio ZeroMQ library: tmq along with tokio-postgres.","url":"https://cetra3.github.io/blog/implementing-a-jobq/","date_published":"2020-04-15T22:02:05Z","author":{"name":"Cetra"},"tags":["Tools and Applications"]},{"id":"01f0e4da-f845-4d47-8dd8-83ac57ac829f","title":"Changelog #19","content_text":"• #3814 add Implement From for enum variant assist\r\n• #3746 add Create function assist.\r\n• #3840 automatically add call parenthesis for tuple-like enum variants","url":"https://rust-analyzer.github.io/thisweek/2020/04/06/changelog-19.html","date_published":"2020-04-07T09:26:57Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"a9902ccd-ce44-4fb8-8ad3-614921bb490d","title":"My tools are going Rusty","content_text":"Recently I've been taking a look at replacements for common command line tools (and coreutils) - ls, cat, find, grep, etc. I don't really have many issues with the older tools, but I like shiny things. Turns out, people have been rewriting a lot of them in Rust","url":"https://elliehuxtable.com/my-tools-are-pretty-rusty/","date_published":"2020-04-06T10:38:13Z","author":{"name":"Ellie Huxtable"},"tags":["Tools and Applications"]},{"id":"0de3a8b8-b3db-4980-adcc-b6fca0807c13","title":"Nushell 0.12.0","content_text":"Just released 0.12.0! Fish-like cd, type inference, jupyter notebook support, command improvements, from-ics/from-vcf/to-md/to-html, better headers, rotated rows, and more!\r\n","url":"https://www.nushell.sh/blog/2020/03/31/nushell_0_12_0.html","date_published":"2020-04-06T10:32:59Z","author":{"name":"Jonathan Turner"},"tags":["Tools and Applications"]},{"id":"2aedc3db-8afc-4a73-a5d0-cb9e6f6d81c1","title":"EXOSTAT: minimal system statusbar","content_text":"EXOSTAT is a simple system-status tool. It writes it's output into xroot.","url":"https://medium.com/@becsegergely/exostat-minimal-system-statusbar-a288e57fa7f6","date_published":"2020-03-29T23:23:04Z","author":{"name":"Gergely Becse Bencsik"},"tags":["Tools and Applications"]},{"id":"75d8beef-454e-4c9a-9220-2ecec6dddf0c","title":"Comparing Alternatives to top Written in Rust","content_text":"Recently I aliased top to ytop. Then I became aware of bottom, and zenith. These are all terminal based system monitoring tools that you might use instead of top. In this post I set out to compare them.","url":"https://www.wezm.net/v2/posts/2020/rust-top-alternatives/","date_published":"2020-03-21T22:23:15Z","author":{"name":"Wesley Moore"},"tags":["Tools and Applications"]},{"id":"c231ae96-f231-4597-8c1b-855d260bf826","title":"New process-viewer release","content_text":"Following both the new sysinfo release and the new gtk-rs release, I worked on updating process-viewer as well. So here comes the 0.3.3 version! As a reminder, process-viewer is a process viewer GUI written in Rust.","url":"https://blog.guillaume-gomez.fr/articles/2020-03-13+New+process-viewer+release","date_published":"2020-03-13T22:43:12Z","author":{"name":"Guillaume Gomez"},"tags":["Tools and Applications"]},{"id":"c08b8801-a99a-4c35-9e00-3d3cc67cba75","title":"navi: an interactive cheatsheet tool for the command-line","content_text":"navi allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands, with argument values prompted to you.\r\n\r\nIt can be either used as a command or a as shell widget (à la Ctrl-R).","url":"https://github.com/denisidoro/navi","date_published":"2020-03-12T10:12:27Z","author":{"name":"Denis Isidoro"},"tags":["Tools and Applications"]},{"id":"6be890da-9ea0-47e4-8fa3-53d68c5de614","title":"Nushell 0.11.0","content_text":"Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. \r\n\r\nWe’re excited to release the 0.11.0 release of Nu. This release continues to push us forward with new commands, improved engine internals, bugfixes, and more.","url":"https://www.nushell.sh/blog/2020/03/10/nushell_0_11_0.html","date_published":"2020-03-11T07:15:02Z","author":{"name":"Jonathan Turner"},"tags":["Tools and Applications"]},{"id":"6fe73bcf-82d8-4a4e-860d-a22294c795ae","title":"Web crawler in Rust","content_text":"I have heard many good things about Rust for several years now. A couple of months ago, I finally decided to start learning Rust. I skimmed through the Book and did the exercises from rustlings. While they helped me get started, I learn best by doing some projects. So I decided to replace the crawler that I used for my Ghost blog, which had been written in bash with wget, with something written in Rust.\r\n\r\nAnd I was pleasantly surprised. I am by no means very knowledgeable in Rust, I still have to look up most of the operations on the Option and Result types, I have to DuckDuckGo how to make HTTP requests, read and write files and so on, but I was still able to write a minimal crawler in about 2-3 hours and then in about 10 hours of total work  I had something that was both faster and had fewer bugs than the wget script.\r\n\r\nSo let's start writing a simple crawler that downloads all the HTML pages from a blog. ","url":"https://rolisz.ro/2020/03/01/web-crawler-in-rust/","date_published":"2020-03-04T06:48:59Z","author":{"name":"Roland Szabo"},"tags":["Tools and Applications"]},{"id":"61cf1124-d5d7-4805-b48b-1f2fc8969a7c","title":"bottom: yet another cross-platform graphical process/system monitor","content_text":"A cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows. Inspired by both gtop and gotop.","url":"https://github.com/ClementTsang/bottom","date_published":"2020-02-26T21:31:30Z","author":{"name":"Clement Tsang"},"tags":["Tools and Applications"]},{"id":"35d99256-a4e9-4ca3-aab7-b0d4baaa2ce1","title":"Nushell 0.10.0","content_text":"Nushell 0.10.0 is out! Now with initial support for scripting, bash-like -c support, shorthand flags, new commands, tons of improvements and bugfixes.\r\n","url":"https://www.nushell.sh/blog/2020/02/18/nushell-0_10_0.html","date_published":"2020-02-20T08:40:30Z","author":{"name":"Jonathan Turner"},"tags":["Tools and Applications"]},{"id":"daae8bf8-eb5e-4c88-b478-e1089a4b7a13","title":"git-trim: trims your git remote tracking branches","content_text":"git-trim automatically trims your git remote tracking branches that are merged or gone.","url":"https://github.com/foriequal0/git-trim","date_published":"2020-02-13T09:17:32Z","author":{"name":"SeongChan Lee"},"tags":["Tools and Applications"]},{"id":"2cad8139-e921-4ee6-b070-e1d5b14816ae","title":"Creating Interactive Applications While Maintaining Your Sanity","content_text":"One of the primary reasons computers are so ubiquitous in modern society is their ability to let humans and software cooperate to achieve a desired goal. That is, to be interactive.\r\n\r\nCreating interactive applications can be pretty annoying for a programmer. Unlike a computer which is predictable and will blindly follow any instructions given to it,\r\n\r\nThe ideas and concepts shown in this article aren’t overly advanced. In fact, if you’ve been programming for a couple months (especially if it’s part of a formal Computer Science program) you’re probably already familiar with them.\r\n\r\nThe difference between an “ordinary” programmer and a Software Engineer isn’t in how many advanced concepts they know, it’s the ability to identify a pattern, understand why it exists, and employ it to solve a problem. The experienced software engineer will do this in a way which won’t make them sad 6 months from now when they need to revisit the code because the boss has asked for a shiny new feature.","url":"http://adventures.michaelfbryan.com/posts/implementing-interactive-applications/","date_published":"2020-02-13T09:14:42Z","author":{"name":"Michael-F-Bryan"},"tags":["Tools and Applications"]},{"id":"044247e0-df06-48a0-bbeb-607b5485c16e","title":"Community Story: Building a Librem 5 app with Rust and GTK","content_text":"Tobias from our design team created an excellent Librem 5 app design tutorial, which covers GNOME design philosophy, going from sketches to mockups, convergence and even how to name your app. The three part series designs a Wallabag app for the Librem 5 called Read it Later. Wallabag is a link saving service with apps for various platforms, which now includes the Librem 5 thanks to Bilal Elmoussaoui. Bilal is a passionate community member who turned Tobias’s designs into a fully featured app. Purism community member Thibault spoke to Bilal about the development process and contributing to the larger ethical software movement.","url":"https://puri.sm/posts/librem-5-community-story-read-it-later/","date_published":"2020-02-13T08:59:53Z","author":{"name":"Sean"},"tags":["Tools and Applications"]},{"id":"eb8244ff-3715-4d49-8fb8-2ce979ada814","title":"sd: Intuitive find & replace CLI (sed alternative)","content_text":"sd - s[earch] & d[isplace] sd is an intuitive find & replace CLI.\r\n\r\nWhy use it over any existing tools?\r\n\r\nPainless regular expressions\r\n\r\nsd uses regex syntax that you already know from JavaScript and Python. Forget about dealing with quirks of sed or awk - get productive immediately.\r\n\r\nString-literal mode\r\n\r\nNon-regex find & replace. No more backslashes or remembering which characters are special and need to be escaped.\r\n\r\nEasy to read, easy to write\r\n\r\nFind & replace expressions are split up, which makes them easy to read and write. No more messing with unclosed and escaped slashes.\r\n\r\nSmart, common-sense defaults\r\n\r\nDefaults follow common sense and are tailored for typical daily use.","url":"https://github.com/chmln/sd","date_published":"2020-02-10T09:22:02Z","author":{"name":"Gregory"},"tags":["Tools and Applications"]},{"id":"f5afb37f-113c-47af-9de3-58eb2fcb17f6","title":"Read It Later, yet another GTK & Rust application","content_text":"Late last year, I wanted to find an application that I can try the Rust async features with it. I started looking for a service that had a nice Rust API wrapper already and I started prototyping Read It Later on top of wallabag-rs.\r\n\r\nRead It Later, is a well designed Wallabag client.  It’s built with Rust, GTK & libhandy on the UI side. It’s fully adaptive which makes it Linux on pocket ready and also comes with a beautiful icon designed by Tobias Bernard.","url":"https://belmoussaoui.com/2020/02/04/read-it-later/","date_published":"2020-02-06T01:48:42Z","author":{"name":"Bilal Elmoussaoui"},"tags":["Tools and Applications"]},{"id":"2c1a744f-3c53-4cd3-a8a7-722e27b660f8","title":"fontfor: Find fonts which can show a specified character and preview them in terminal or browser","content_text":"fontfor lists fonts that have glyphs for a supplied character. It can also preview the glyphs in the browser or via a TUI with multiple rendering modes.","url":"https://github.com/7sDream/fontfor","date_published":"2020-02-04T22:04:04Z","author":{"name":"7sDream"},"tags":["Tools and Applications"]},{"id":"7c59dafc-2fd0-4754-94da-9a23d8a236ae","title":"Neovide, a No Nonsense Neovim Client in Rust","content_text":"This is a simple graphical user interface for Neovim. Features: ligatures and full HarfBuzz backed font shaping. Cursor animates into position with a smear effect to improve tracking of cursor position. Emoji.","url":"https://github.com/Kethku/neovide","date_published":"2020-02-03T06:49:22Z","author":{"name":"Keith Simmons"},"tags":["Tools and Applications"]},{"id":"112007c1-0bdf-4d0b-9833-730acbbc6c84","title":"Announcing hashgood: a tool for verifying file checksums","content_text":"Last year on this blog I was having a whinge about the inconvenience of checking that a file you’ve downloaded actually has the SHASUM you hope it does. Using your eyes to confirm that a bunch of hexadecimal in your terminal is the same as the bunch of hexadecimal in your browser is pretty slow and unreliable.\r\n\r\nCertainly you can ask the computer to compare these strings, but if you’re like me this process takes maybe 15 seconds of creative thinking which I’d rather spend using the file that I just downloaded.\r\n\r\nUnsatisfied with all the existing solutions, I went on to create a new CLI tool called hashgood, which I have now published on GitHub.","url":"https://thomask.sdf.org/blog/2020/01/21/announcing-hashgood-tool-for-verifying-checksums.html","date_published":"2020-02-03T06:30:57Z","author":{"name":"Thomas Karpiniec"},"tags":["Tools and Applications"]},{"id":"50632f34-e995-4ebf-9d37-9c3d70664efb","title":"Creating a JavaFX GUI for Rust WebAssembly using Asmble and Kotlin","content_text":"When it comes to creating modern looking Desktop applications, JavaFX is a tried-and-tested weapon of choice. The rise of the Kotlin programming language as a Java replacement makes the proposition even more appealing as it comes with new powerful features while cutting down on verbosity. The good news is that it can be interfaced with a Rust WebAssembly library thanks to the Asmble tool. This tutorial is an example of how this can be done.","url":"http://vegapit.com/article/javafx-gui-rust-webassembly-asmble-kotlin","date_published":"2020-02-01T08:44:20Z","author":{"name":"Vegapit"},"tags":["Tools and Applications"]},{"id":"4920736a-8f54-4eef-ba54-2d7651e249c4","title":"Nushell 0.9.0","content_text":"What’s new: --help available on all commands, Better error feedback, Shelling out.\r\nNew commands: du, clear, New welcome message, Improved table streaming.\r\nCommand improvements: ls and rm now error when a path isn’t found, ls can optionally show just the filename, ls can also optionally show symlink targets, ls smaller by default, now with more info with --full, from-xml now includes attributes, sort-by works with more value types, debug now pretty-prints its output, autocompletion can now be configured.\r\n","url":"https://www.nushell.sh/blog/2020/01/28/nushell-0_9_0.html","date_published":"2020-01-30T21:17:49Z","author":{"name":"Jonathan Turner"},"tags":["Tools and Applications"]},{"id":"3a944ada-ec6a-4fa8-94c9-581bbca01b32","title":"Kondo: Cleans unneeded directories and files from your system","content_text":"Cleans unneeded directories and files from your system.\r\n\r\nIt will identify the disk space savings you would get from deleting temporary/unnecessary files from project directories, such as target from Cargo projects and node_modules from Node projects. Currently kondo doesn't actually delete any files.\r\n\r\nSupports:\r\n\r\n* Cargo projects\r\n* Node projects\r\n* Unity Projects\r\n* SBT projects\r\n* Haskell Stack projects\r\n","url":"https://github.com/tbillington/kondo","date_published":"2020-01-28T09:02:28Z","author":{"name":"Trent"},"tags":["Tools and Applications"]},{"id":"0c7454d4-8dd1-4536-8de6-7049fee4c01e","title":"ytop: a TUI system monitor written in Rust","content_text":"Another TUI based system monitor, this time in Rust! Currently working on Linux and macOS with support planned for all major platforms.","url":"https://github.com/cjbassi/ytop","date_published":"2020-01-27T10:48:14Z","author":{"name":"Caleb Bass"},"tags":["Tools and Applications"]},{"id":"1f3e41d5-56cb-4940-8189-d0d12a7af7bf","title":"Rust and GTK from a React perspective","content_text":"Recently, after a few failed attempts at using other frameworks to make an application that was both easy to use and easy to install, I embraced native software development with Rust and GTK.\r\n\r\nThough I have made short forays in the past, GTK was a change for me. Before this, most of my user interface experience came from building React applications. The transition from React to GTK posed some challenges. Most came from differences in widget philosophy. GTK in Rust, though, is particularly hard because of the extra rules Rust enforces to protect against memory management errors and against operations that are unsafe to do in a threaded context.\r\n\r\nIn this article, I will talk primarily how I adapted the philosophies from React into GTK, and I will highlight some of the extra tricks that are necessary to make GTK conform to Rust’s rules. Rust enforces some tricky rules that will be unfamiliar to most developers, primarily in terms of how values can be shared, but also with strong restrictions on mutability. I’ll point out these rules as they come up throughout this article.","url":"https://savanni.luminescent-dreams.com/2020/01/15/rust-react-gtk/","date_published":"2020-01-17T08:11:41Z","author":{"name":"Savanni D'Gerinel"},"tags":["Tools and Applications"]},{"id":"8cf479d2-1e12-4f2f-ae9c-a1636671e58f","title":"rust-analyzer changelog #7","content_text":"Lots of good stuff this week, including binary releases to GitHub.","url":"https://rust-analyzer.github.io/thisweek/2020/01/13/changelog-7.html","date_published":"2020-01-14T06:11:28Z","author":{"name":"rust-analyzer"},"tags":["Tools and Applications"]},{"id":"358997f0-7ede-4da5-87c1-319e4a3529a2","title":"Way Cooler Post Mortem","content_text":"I started Way Cooler 4 years ago today. No real significant process has been made on the project for about 2 years now and my interest has waned considerably. I’m officially ending the project. As no one else has contributed seriously to it no successor is named. Anyone is free to fork it or use the name (as long as attribution for the original source is given, per the MIT license).\r\n\r\nIt being my biggest open source undertaking to date I would be remiss if I did not spend some time reflecting on the project. What I did right, what I did wrong, but fair warning it’s a bit long!","url":"http://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html","date_published":"2020-01-10T05:58:25Z","author":{"name":"Preston Carpenter"},"tags":["Tools and Applications"]},{"id":"53b58e5f-34d7-4686-a0a5-86853cc217b5","title":"Nushell 0.8.0","content_text":"We’re happy to announce the 0.8.0 release of Nu. This continues a series of internal improvements, with better stability and correctness, and, of course, new features.\r\n","url":"https://www.nushell.sh/blog/2020/01/07/nushell-0_8_0.html","date_published":"2020-01-08T10:31:51Z","author":{"name":"Jonathan Turner"},"tags":["Tools and Applications"]},{"id":"7d461eb1-1a56-407b-8222-5fbc46f69988","title":"scotty: transports you to any directory you have visited before ","content_text":"Scotty uses full text search techniques to rapidly go to directories in your shell that you have visited previously. It is implemented in rust, because I wanted to learn the language, but also to minize any latency so that your shell remains snappy.","url":"https://github.com/wdullaer/scotty","date_published":"2020-01-07T09:39:55Z","author":{"name":"Wouter Dullaert"},"tags":["Tools and Applications"]}]}