this post was submitted on 03 Oct 2024
49 points (87.7% liked)

Programming

17313 readers
357 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

Zig vs Rust. Which one is going to be future?

I think about pros and cons and what to choose for the second (modern) language in addition to C.

@[email protected]

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 1 month ago (2 children)
  1. Cargo is truly great, but it's a mystery to me right now how I'm going to get it to work with certain packaging systems.

Yeah, Cargo itself doesn't deal with any of the bundling after the executable is built.

For that stuff, the efforts are certainly still ongoing. There's no grand unified tool yet.

If you just want e.g. a DEB file, then you probably want this: https://crates.io/crates/cargo-deb

But if you want to do more in CI, then there's kind of three popular options that I'm aware of.

  • just: More or less a shell script runner, and kind of like make.
  • cargo-make: A lot of effort has been put into this, it's certainly got a good amount of features, but personally not a fan, since it makes you write a custom TOML format and then ideally you should be writing a custom script language, DuckScript. You can also use Rust scripts with it, which we tried, but there was just no way of passing parameters between tasks.
  • cargo-xtask: This is not a tool, it's a pattern, basically just build your own build tool. It does have its downfalls, you're not going to build good caching into your own build tool, for example. But in principle I find this quite workable, as you get to write your CI code in Rust. There's also more and more community-made libraries to aid with that.
[–] [email protected] 3 points 1 month ago

Thanks, I've save your comment. I haven't heard of any of these.

[–] [email protected] 2 points 1 month ago

Great suggestions! One nitpick:

But in principle I find this quite workable, as you get to write your CI code in Rust.

Having used xtask in the past, I’d say this is a downside. CI code is tedious enough to debug as it is, and slowing down the cycle by adding Rust compilation into the mix was a horrible experience. To add, CI is a unique environment where Rust’s focus on correctness isn’t very valuable, since it’s an isolated, project-specific environment anyway.

I’d rather use Deno or indeed just for that.