1
8
2
9
submitted 1 week ago by dessalines@lemmy.ml to c/rust@lemmy.ml
3
22
submitted 1 week ago* (last edited 1 week ago) by tracyspcy@lemmy.ml to c/rust@lemmy.ml

Finally I can stay forever on lemmy even not opening the browser! 😂

Thinking of using it as a mod tool to see new posts in communities I moderate.

Sharing it early, maybe get some ideas on how to make it better.

https://github.com/tracyspacy/lemmy-tray

4
6
submitted 2 weeks ago by dessalines@lemmy.ml to c/rust@lemmy.ml
5
7
6
8
submitted 3 weeks ago by remustan37@sh.itjust.works to c/rust@lemmy.ml

Hi everyone I was thinking of creating a backend module that has functione for a note taking(search, sort, etc). So anyone can implement a ui on top of it.

I have some basic understanding of rust (made a just-working chip-8 emulator). But I've never used SQL or other database.

Is this plausible? Is there a similar project that I can use as reference? What are the mistakes I should avoid?

7
6
submitted 3 weeks ago* (last edited 3 weeks ago) by steam_lover@sh.itjust.works to c/rust@lemmy.ml
8
29
Announcing Rust 1.95.0 (blog.rust-lang.org)
9
5
[features]
default = ["runtime_completion_gen", "comptime_completion_gen", "comptime_manpage_gen"]
runtime_completion_gen = ["dep:clap_complete",]
comptime_completion_gen = ["dep:clap_complete"]
comptime_manpage_gen = ["dep:clap_mangen"]

[dependencies]
anyhow = "1.0.0"
clap = { version = "4.0.0", features = ["derive", "help"] }
clap_complete = { version = "4.0.0", optional = true }
ignore = "0.4.25"

[build-dependencies]
clap = { version = "4.0.0", features = ["derive"] }
clap_complete = { version = "4.0.0", optional = true }
clap_mangen = { version = "0.2.31", optional = true }

The features that start with comptime, as their name suggest, happen at comp time in build.rs, they generate shell completions and manpages for my cli utility, thus they depend only at build time to their respective dependencies, but there seems no way to specify this.

Does anyone know if there is a way to specify build deps for a feature?

10
9
11
3
submitted 1 month ago by tracyspcy@lemmy.ml to c/rust@lemmy.ml

cross-posted from: https://lemmy.ml/post/45214693

Also vm repo

12
27
submitted 1 month ago by TitanNano@vger.social to c/rust@lemmy.ml

cross-posted from: https://vger.social/post/37291894

godot-rust goes into the next round with v0.5, just released on crates.io!

On the toolchain side:

  • We now support Rust edition 2024 and Godot 4.6 out of the box, as well as all versions >= 4.2.

  • WebAssembly support no longer needs LLVM/bindgen and is being unit-tested on CI.

  • It's now possible to depend on other godot-rust crates through rlib.

Some features added in this cycle:

Typed dictionary. Also, enums in Godot collections!

let tiles: Dictionary<Vector2i, Tile> = dict! {
   Vector2i::new(1, 2) => Tile::GRASS,
   Vector2i::new(1, 3) => Tile::WATER,
};

Non-null engine APIs:

// Instead of...
let t: Gd<Tween> = node.create_tween().unwrap();
// ...now:
let t: Gd<Tween> = node.create_tween();

Direct == &str comparison, saving allocation:

let s = StringName::from("hello");
if s == "hello" { ... }

Bitfield Debug impl:

assert_eq!(
    format!("{flags:?}"),
    "PropertyUsageFlags { EDITOR | READ_ONLY }"
);

Optional parameters -- call from GDScript as method(1) or method(1, 2):

#[func]
fn method(
    required: i32,
    #[opt(default = 100)] optional: i32,
) { ... }

Export tool button -- click in Godot's inspector to immediately execute Rust code:

#[export_tool_button(fn = Self::on_clicked, icon = "2DNodes")]
click_me: PhantomVar<Callable>, // not a physical property

We now also have a Games page showcasing projects that users made with godot-rust! And I'm still behind on adding new entries there :)

Huge thanks to the community for making this possible! Countless bug reports, PRs, and feedback based on real-world projects have helped godot-rust immensely to reach this point.

If you like the project, consider giving us a star on GitHub. As it's maintained entirely in free time without any financial backing, small GitHub Sponsor contributions are also very appreciated (Yarwin or TitanNano or Bromeon). Thanks to everyone supporting the project -- We are excited to see what will be built on v0.5!

13
16
Announcing Rust 1.94.1 (blog.rust-lang.org)
submitted 2 months ago by steam_lover@sh.itjust.works to c/rust@lemmy.ml
14
22
Synchi - Two-way file sync (jakobkreft.github.io)
submitted 2 months ago by jak0b@lemmy.ml to c/rust@lemmy.ml

cross-posted from: https://lemmy.ml/post/44815211

Two-way file sync, no remote agent needed

Today Synchi is finally public! It's designed for syncing files between two locations (local or over SSH). It detects conflicts, and lets you decide what to do.

Why not rsync/Unison/Syncthing?

  • rsync has no memory between runs and is one-way
  • Unison needs to be installed on both sides
  • Syncthing requires always-on daemons

Synchi runs on demand, works over SSH, and only transfers what actually changed.

I use it daily for syncing a shared folder between my machines and an android phone. Works great in combination with Tailscale/WireGuard so that you can sync files remotely.

15
9
Security advisory for Cargo (blog.rust-lang.org)
submitted 2 months ago by steam_lover@sh.itjust.works to c/rust@lemmy.ml
16
18
submitted 2 months ago by Ephera@lemmy.ml to c/rust@lemmy.ml

Always had the problem that if I wanted to just log an error, rather than bubble it all the way up to main(), that you wouldn't get a stacktrace. You could iterate the source chain and plug the stacktrace together yourself, but it's rather complex code.

Now I realized, you can do this to get a stacktrace:

let error = todo!("Get an error somehow...");
let error = anyhow::anyhow!(error); //converts to an `anyhow::Error`
eprintln!("Error with stacktrace: {error:?}");

For converting to an anyhow::Error, it often also makes sense to use anyhow::Context like so:

use anyhow::Context;
let error = error.context("Deleting file failed.");
17
40
submitted 2 months ago* (last edited 2 months ago) by steam_lover@sh.itjust.works to c/rust@lemmy.ml
18
4
submitted 2 months ago by amadaluzia@discuss.tchncs.de to c/rust@lemmy.ml

Hello rust!

I’ve recently wanted to create a blog with Gemini, but I have a very strong disdain for writing boilerplate. It’s a scar that has never left me since HTML. Instead, I JUST wanted to write the content, and not have to worry much about writing the same layout (though it matters less than in HTML).

Therefore, I created gtm with the knowledge that no one else tried doing the same thing I was doing. I ended up proving myself wrong after discovering Michael Lazar’s Jetforce, which is currently a much more complete project than my own. However, I still believe that working on it would result in something interesting.

This project was originally written in Python due to Jinja2, rich, click, and other libraries. However, I rewrote the program in Rust because I wanted more control over the context my plugins were going to run in. I've found that clap, anyhow and tera did what I want well enough :).

Feel free to let me know if you want anything added to this. Currently, Lua is something I really want to add to gtm since I want people to be able to write their own functionality. I’d be glad to see what you lot have to say.

A side note before anyone gets curious, I wrote this entirely by hand as my first major project, and is also being used for me to learn Rust. No LLMs, GPTs, AI-powered smart fridges or similar were involved.

Cheers!

19
13
submitted 2 months ago by lukrecja@lemmy.world to c/rust@lemmy.ml

Hi, some time ago I made a driver for STM32WLE5JC’s subGHz device in Rust, which communicates via internal SPI lines. Right now it can do RX/TX with LoRa, (G)FSK, (G)MSK and TX with BPSK, and today I decided to share it :3

It’s not yet finished and there’s some things I’d still like to do, including meeting the (boring) radio laws worldwide, or publishing it on crates.io. It’s my first project like that and I hope it’ll be helpful to someone.

I also wrote a blog post series covering the subGHz radio, my programming process and I also touched on some other interesting stuff like demodulation basics with GNU Radio. I learned so much and I hope others will find it interesting as well!

Here are the blog posts :3 go read them >:3

https://lusia.moe/tags/stm32wle5jc/

20
10
submitted 2 months ago by such0299@sh.itjust.works to c/rust@lemmy.ml

cross-posted from: https://sh.itjust.works/post/57050433

Hello

I've been interested with Rust for the last year, but cannot find time to learn Rust.

Coming from Python, i have found my self quite difficult to learn Rust and grasp its concepts.

So, for the last couple of weeks, i have been able to spare some times to learn Rust, and created a mini project to parse Vendor OUI with Rust.

If you would be so kind to spare some of your time to review my code and give me some constructive feedback on how to tackle this, and some guidance for me about what i can improve because its not the rust way of doing things, i would be very happy. I want to improve my skills on Rust so i have another tools in my toolbox

This is not a promotion, because i believe there's another tools just like mine out there nor i want you to use my project, because this project is only for me to test my skill for using Rust.

Thank you in advanced :D

21
5
submitted 2 months ago by steam_lover@sh.itjust.works to c/rust@lemmy.ml
22
19
Announcing rustup 1.29.0 (blog.rust-lang.org)
submitted 2 months ago by steam_lover@sh.itjust.works to c/rust@lemmy.ml
23
24
submitted 2 months ago by monica_b1998@lemmy.world to c/rust@lemmy.ml
24
29
submitted 2 months ago by wvhulle@lemmy.world to c/rust@lemmy.ml

Visualizes a proof or program written in mathematical programming language Lean. Written with Rust and backend in Lean.

https://codeberg.org/wvhulle/lean-tui

25
11
submitted 3 months ago by mawkler@lemmy.ml to c/rust@lemmy.ml

So I ran cargo audit on a project and got the following output:

error: 4 vulnerabilities found!
warning: 8 allowed warnings found

What do I do to fix these errors? The vulnerabilities are in dependencies of my dependencies, and they seem to be using an older version of a package. Is my only option to upgrade my own dependencies (which would take a non-trivial amount of work), or is there any way to tell my dependencies to use a newer version of those vulnerable packages like how npm audit fix works? I'm guessing that's what cargo audit fix is supposed to do, but in my case it wasn't able to fix any of the vulnerabilities.

I tried searching the web, but there was surprisingly little information on this stuff.

view more: next ›

Rust Programming

9281 readers
1 users here now

founded 7 years ago
MODERATORS