Rust

6833 readers
3 users here now

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

Wormhole

[email protected]

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
101
49
submitted 4 months ago by snaggen to c/rust
102
45
submitted 4 months ago by snaggen to c/rust
103
20
submitted 4 months ago by snaggen to c/rust
104
27
submitted 5 months ago by [email protected] to c/rust
105
106
70
submitted 5 months ago by snaggen to c/rust
107
40
submitted 5 months ago* (last edited 5 months ago) by AsudoxDev to c/rust
 
 

I want to allow the users of my project be able to write the driving logic, while I provide the tools. What are some embedded scripting languages in Rust that can be sandboxed and are easy for absolute beginners?

edit: Thanks for all of your answers, I decided to go with lua using mlua

108
 
 

In order to share the running transaction into a DAO style data management class, I have wrapped the transaction in an Arc and pass it into the DAO.

The issue is, once the transaction is in there I cannot call commit() on it because it cannot be moved out of the Arc anymore, as the commit requires a mut self.

Any ideas on how to work around this?

109
23
submitted 5 months ago by snaggen to c/rust
110
18
submitted 5 months ago* (last edited 5 months ago) by [email protected] to c/rust
 
 

It might be lack of sleep, but I can't figure this out.

I have a Label, and I want its text to be red when it represents an error, and I want it be green when it represent "good to go".

I found search result for C and maybe a solution for Python, but nothing for Rust.

I tried manually setting the css-classes property and running queue_draw(); it didn't work.

I can have a gtk::Box or a Frame that I place where the Label should go, then declare two Labels, and use set_child() to switch between them, but that seems like an ugly solution.

Do you have a solution?

SOLVED:

I have to add a "." before declaring a CSS "thing" for it to be considered a class.

Ex:

.overlay {
        background: rgba(60, 60, 60, 1);
        font-size: 25px;
}

instead of:

overlay {
        background: rgba(60, 60, 60, 1);
        font-size: 25px;)
}

Just use label.add_css_class(), label.remove_css_class() or label.set_css_classes() and make sure to properly load your CSS style sheets,

Source: the comment of [email protected]

111
 
 

After almost 3 years of work, I've finally managed to get this project stable enough to release an alpha version!

I'm proud to present Managarr - A TUI and CLI for managing your Servarr instances! At the moment, the alpha version only supports Radarr.

Not all features are implemented for the alpha version, like managing quality profiles or quality definitions, etc.

Here's some screenshots of the TUI:

Additionally, you can use it as a CLI for Radarr; For example, to search for a new film:

managarr radarr search-new-movie --query "star wars"

Or you can add a new movie by its TMDB ID:

managarr radarr add movie --tmdb-id 1895 --root-folder-path /nfs/movies --quality-profile-id 1

All features available in the TUI are also available via the CLI.

112
113
 
 

I would like to share a bash script I made for when you want to simply run a rust script once and delete it. Instead of having compile the script with rustc, running the binary and then deleting the binary, you can achive all of this with this bash script below.

The first argument will be the rust script file name. The .rs file extension is optional. The rest of the arguments are passed into the executed binary.

Simply name the bash script to something like rust-run.sh.

#!/bin/bash

#Get file path from first parameter
path=$(dirname "$1")

#Get file name from first parameter
fileName=$(basename "$1")
fileName="${fileName%'.rs'}"

#Compile executable and save it in the same directory as the rust script
rustc "${path}/${fileName}.rs" -o "${path}/${fileName}"

#If rustc commands retuned any errors, unable to compile the rust script
if [ $? -ne 0 ]; then
    return
fi

#Execute compilled executable and pass the rest of the parameters into the executable
"${path}/${fileName}" ${*:2}

#Delete compillled executable
rm "${path}/${fileName}"

If someone wants to rewrite this in rust or add these features into the rustc, feel free to do so.

114
115
13
submitted 6 months ago* (last edited 6 months ago) by Matty_r to c/rust
 
 

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"]
      }
    ]
  }
116
 
 

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

117
37
submitted 6 months ago* (last edited 6 months ago) by snaggen to c/rust
118
105
submitted 6 months ago by KillTheMule to c/rust
 
 

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.

119
49
submitted 6 months ago by [email protected] to c/rust
120
 
 

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

121
68
submitted 6 months ago* (last edited 6 months ago) by little_ferris to c/rust
 
 

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

122
33
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/rust
 
 

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 🦀

123
33
Bacon v3 released (dystroy.org)
submitted 6 months ago* (last edited 6 months ago) by Deebster to c/rust
 
 

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

124
 
 

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:

125
view more: ‹ prev next ›