Rust

7730 readers
79 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 2 years ago
MODERATORS
351
352
 
 

Hi all,

I'm going through and giving a bunch if different GUI frameworks a go and have tried iced, egui and Slint. Iced was by far the easiest to get started and just seemed fairly logical for layouts, Slint was pretty cool - VSCode actually has like a wysiwyg-editor that allows you to drag components around etc.

Unfortunately I'm having issues getting breakpoints to work when using VSCode, Tauri, plus a Rust frontend (yew, dioxus, etc). I think its because what is compiled isn't where my actual code exists? If I use a JavaScript frontend it hits breakpoints fine, but that's not what I'm wanting to use at the moment.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
      {
        "type": "lldb",
        "request": "launch",
        "name": "Tauri Development Debug",
        "cargo": {
          "args": [
            "build",
            "--manifest-path=./src-tauri/Cargo.toml",
            "--no-default-features"
          ]
        },
        "env": {
            "WEBKIT_DISABLE_COMPOSITING_MODE": "1"
        },
        // task for the `beforeDevCommand` if used, must be configured in `.vscode/tasks.json`
        "preLaunchTask": "ui:dev"
      },
      {
        "type": "lldb",
        "request": "launch",
        "name": "Tauri Production Debug",
        "cargo": {
          "args": ["build", "--release", "--manifest-path=./src-tauri/Cargo.toml"]
        },
        // task for the `beforeBuildCommand` if used, must be configured in `.vscode/tasks.json`
        "preLaunchTask": "ui:build"
      }
    ]
  }
{
    "version": "2.0.0",
    "tasks": [
      {
        "label": "ui:dev",
        "type": "shell",
        "isBackground": true,
        // change this to your `beforeDevCommand`:
        "command": "trunk",
        "args": ["serve"]
      }
    ]
  }
353
 
 

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

354
355
 
 

Typst is a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use

Typst is awesome, in particular if you want to generate documents programmatically.

356
357
 
 

It's possible that the .io cctld is going to go away [0]. Does crates.io have a backup plan at all? Does anyone know what problems it would end up causing?

I imagine the package registry having to move domains is going to cause a ton of problems.

Frankly, it's concerning to me that so much of the Rust ecosystem has chosen to standardize on shaky ccTLDs. The Indian Ocean Territory (.io) is a small island territory whose only inhabitants are a single military base, it is crazy to use that domain for something important. Serbia (.rs) is more stable, but they could still cut off access for non-Serbians if they wanted to.

[0] - https://en.wikipedia.org/wiki/.io#Phasing_Out

358
 
 

If we were to create a Rust version of this page for Haskell, what cool programming techniques would you add to it?

359
 
 

Links:

For a lot of us, atproto projects are some of the biggest (most users, most publicized, most code written, etc.) projects we’ve ever done. For me, it’s also my first time working in open source (ironically, someone asked me to be more open about that)

If you can help, pls check out open issues.

I know not everyone thinks highly of atproto around these parts, but please don’t let that get in the way of welcoming a fellow rustacean into the open source world 🦀

360
30
Bacon v3 released (dystroy.org)
submitted 1 year ago* (last edited 1 year ago) by Deebster@programming.dev to c/rust@programming.dev
 
 

Bacon is a Rust code checker designed for minimal interaction, allowing users to run it alongside their editor to receive real-time notifications about warnings, errors, or test failures (I like having it show clippy's hints).

It prioritizes displaying errors before warnings, making it easier to identify critical issues without excessive scrolling.

Screenshot (from an old version I think):

v3 adds support for cargo-nextest, plus some QoL improvements.

v3.0.0 release notes

361
 
 

This is my first ever Rust program.

The motivation of this is to create a soundboard with global hotkey support on Wayland, because Soundux wouldn't add it :<
That's why this soundboard is structurally very similar to Soundux.

Here's a screenshot:

362
363
 
 

Just started learning Rust today and got Rust installed, got the hello world example compiled and running. I installed rust-analyzer and CodeLLDB extensions in VSCode. Enable the debug.allowBreakpointsEverywhere settings to VSCode to be true. Setup a debug configuration in VSCode.

However I keep getting errors from rust-analyzer when I run the debugger...

2024-10-06T22:16:04.808655Z ERROR FetchWorkspaceError: rust-analyzer failed to load workspace: Failed to load the project at /home/john/Documents/Snippets/Rust/Cargo.toml: Failed to read Cargo metadata from Cargo.toml file /home/john/Documents/Snippets/Rust/Cargo.toml, Some(Version { major: 1, minor: 81, patch: 0 }): Failed to run `cd "/home/john/Documents/Snippets/Rust" && RUSTUP_TOOLCHAIN="/home/john/.rustup/toolchains/stable-x86_64-unknown-linux-gnu" "/home/john/.cargo/bin/cargo" "metadata" "--format-version" "1" "--manifest-path" "/home/john/Documents/Snippets/Rust/Cargo.toml" "--filter-platform" "x86_64-unknown-linux-gnu"`: `cargo metadata` exited with an error: error: failed to parse manifest at `/home/john/Documents/Snippets/Rust/Cargo.toml`

Caused by:
  no targets specified in the manifest
  either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present

I not sure how to fix this.

I would like to get the VSCode debugger to work for launch debugging, attach debugging and launch and attach debugging for rust running inside a docker container. This will be a good setup for getting started I believe.

This is my VSCode debugger configuration...

{
	// Use IntelliSense to learn about possible attributes.
	// Hover to view descriptions of existing attributes.
	// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
	"version": "0.2.0",
	"configurations": [
		{
			"type": "lldb",
			"request": "launch",
			"name": "Debug",
			"program": "${workspaceFolder}/hello-world",
			"args": [],
			"cwd": "${workspaceFolder}"
		}
	]
}

Any help and advice will be most appreciated.

364
365
 
 

I was using Iced as a dependency, but wanted to tweak its source code for some reason, so I jumped into the folder where cargo downloads dependencies, and went into iced_wgpu 13.5 (I think that's the version).

I could make a change, then run

cargo clean -p iced_wgpu && cargo check

in my other project for instant feedback, yet it took rust_analyzer at least 5 whole minutes to stop hallucinating.

Can I disable some functionality of rust_analyzer? I only use it for jump-to-definition, linting and syntax highlighting; I don't even use autocomplete.

Setup:

  • Desktop that thermally throttles only when both the IGPU and the CPU are under full load, and is cool otherwise.

  • CPU: Intel I5-7500

  • RAM: 8 GiB DDR-4

  • Editor: NVIM v0.11.0-dev | Build type: RelWithDebInfo | LuaJIT 2.1.0-beta3 (I had the same issue with other versions as well).

TLDR

What can I disable in rust_analyzer to boost performance while maintaining jump-to-definition, linting and syntax-highlighting, or what can I do to boost rust_analyzer for big projects in general?

366
 
 

I really like the idea of a package/dependency manager. It just seems that when ever I am reading a tutorial and they want to import something that is not standard they say write this in to your TOMOL not cargo install it. Like when reading python docs they all say to use pip or something. Sorry it just seems that Cargo is somewhat overlooked or is it just my perception?

367
368
369
370
371
 
 

This is a blog post that really is about C++, but with a look at how Rust does things. So, this is an interesting C++/Rust comparison for once.

372
 
 

Last week I basically duplicated the serialization code to provide better debug output.... today, I see this pass in my Mastodon feed. 😀 Well... what are the odds... most likely close to 100% according to how the universe seems to operate.

373
 
 

Kellnr, the crate registry for Rust got an update. The latest version contains bug fixes and dependency updates. If you are interested in hosting private crates that must not be on crates.io, check it out.

374
 
 

Hi rustaceans! What are you working on this week? Did you discover something new, you want to share?

375
 
 

A short post on how variable names can leak out of macros if there is a name collision with a constant. I thought this was a delightful read!

view more: ‹ prev next ›