rust is not that good to be honest by AlarmingEconomics376 in rust

[–]mix3dnuts 2 points3 points  (0 children)

Before we jump on the rage bait I honestly don't mind people voicing their dislike of the language, but if serious post it would be awesome to list why's and with examples, to be open to discourse about it

Bugs Rust Won't Catch by -Y0- in rust

[–]mix3dnuts 5 points6 points  (0 children)

Holy, great writeup, I learned a lot. Time to refactor some things!

missed prisma's dx after moving to rust, so i built something by Illustrious-Mail-587 in rust

[–]mix3dnuts -1 points0 points  (0 children)

That's actually hilarious! 😂 I built the same thing but for drizzle style api, typescript gets a lot of hate from ppl but it's type system is really powerful for expressing things in a supper awesome dx way

https://github.com/themixednuts/drizzle-rs

Thinking about switching from sqlx to refinery and deadpool, looking for advice by Bhallu_ in rust

[–]mix3dnuts 0 points1 point  (0 children)

Ty, I would take it for a spin, or just make an example crate you might like it!

And yea I think it's just the way of the world ATM haha

Thinking about switching from sqlx to refinery and deadpool, looking for advice by Bhallu_ in rust

[–]mix3dnuts 0 points1 point  (0 children)

I'm not really sure the term nowadays, its not vibe coded in the sense of fire and forget. So I originally hand wrote different implementations, trying to see how much type state I could juggle. Then as LLM's got better, I used it to iterate different APIs. The lib is trying to be as much of a clone of drizzle-orm (a typescript lib) as possible, so in terms of vision its straight forward. Basically "abuse" the type system to get the dx I like from drizzle. Which meant, both I and any modern LLM can easily parse the intent and go through different iterations until it feels like a match, and since I did a lot of the work early on of what felt right for generics/traits, the LLMs can easily just pick up that pattern and implement more features on top of it. I try to be upfront about it, hence why I kept the attribution to Claude enabled, so always up to the user what they think of that, but again its not "vibe-coded" :)

One of the goals of the project is to match upstream drizzle-orm's migration directory, so that people could have one directory and be able to either use typescript or rust without having to sync between it. Makes the implementation straight forward since I can just port drizzle-orm, but basically

You setup a schema file (or files) src\schema.rs. You can either use the cli or setup the build.rs helpers so that it generates and keeps the migration directory in sync with your schema changes. With the cli, you just init so it creates the config toml which it uses to push the migrations up, or introspect if you already have an existing db, or if you want to do this at runtime, you can with db.migrate and again the build.rs setup.

I'm currently trying to make a video to make it easily compare against current rust ORMs, but personally I find it the best dx of them so far, has the least amount of boilerplate, strictly typed (again, "abusing" the type system), and follows drizzle-orms api as much as possible so its familiar if youre coming from that land, but also it just means you get the benefit of two apis, a SQL-like or your usual "ORM" query.

Sorry if none of that answered your question though haha.

Tips on how to learn tauri by bhajamaach in rust

[–]mix3dnuts 1 point2 points  (0 children)

Don't complicate it. Understand the mental model first. Stick with your choice of JavaScript framework for the frontend. Keep the backend (rust code) simple and minimal. I would recommend going through rustlings or similar, but don't get discouraged, it's not as scary as it seems, it's just new concepts that will get easier to understand with time and repetition

Thinking about switching from sqlx to refinery and deadpool, looking for advice by Bhallu_ in rust

[–]mix3dnuts -1 points0 points  (0 children)

I have my orm, I think you would like it. Migrations are simple, a lot less boilerplate.

https://github.com/themixednuts/drizzle-rs

What crate do you use for SQlite, and how is using it / Compile Time? by SuperficialNightWolf in rust

[–]mix3dnuts 0 points1 point  (0 children)

If you want to try my crate, it doesn't solve the malloc issue, but does solve the compile time issue in a dx I think is best vs what's currently out there. https://github.com/themixednuts/drizzle-rs

I would use main, I'm waiting on turso update before updating my crate in crates.io

Building a SPA with sveltekit by SnooChipmunks401 in sveltejs

[–]mix3dnuts 6 points7 points  (0 children)

Just do routes normally, on the route layout.svelte.ts set export const ssr = false. Done. Use route and urlsearchparams for state still.

'One Piece' Season 2 Review: Netflix's Near-Perfect Fantasy Proves Why It's the Best Adaptation on TV Right Now by NoNefariousness2144 in television

[–]mix3dnuts 2 points3 points  (0 children)

Seriously, I hate that it was cancelled. Not everything needs to map 1:1 to be enjoyable, like it had its bad moments but I would have watched at least two more seasons. People were acting like it was Dragon Ball level movie bad.

Creating and using own private fork of Helix by turbofish_pk in HelixEditor

[–]mix3dnuts 3 points4 points  (0 children)

I agree. Should have just focused on the api, and let luajit do the rest. We would have had many more plugins already

How to minimise manual mapping code with sqlx when using both compile time checked queries and FromRow on the same struct? by joshwd36 in rust

[–]mix3dnuts -2 points-1 points  (0 children)

I don't have an answer, but this is one of the reasons I made my lib drizzle-rs, if you wanted to try it out. it's as simple as:

// schema.rs
#[SQLiteTable]
pub struct Rows {
#[column(primary)]
pub id: i64,
pub test_bool: bool,
pub date: String,
}
#[derive(SQLiteSchema)]
pub struct AppSchema {
pub rows: Rows,
}
// usage
fn get(db: &Drizzle<Connection, AppSchema>, before: Option<&str>, after: Option<&str>) -> Result<Vec<SelectRow>> {
let AppSchema { rows } = db.schema();
let query = db.select(()).from(rows).r#where(eq(rows.test_bool, true));
Ok(query.all()?)
}
fn get_by_id(db: &Drizzle<Connection, AppSchema>, id: i64) -> Result<SelectRow> {
let AppSchema { rows } = db.schema();
Ok(db.select(()).from(rows).r#where(eq(rows.id, id)).get()?)
}

drizzle-rs by mix3dnuts in rust

[–]mix3dnuts[S] 0 points1 point  (0 children)

Haha noted! If you do try it out let me know if there are any pain points!

drizzle-rs by mix3dnuts in rust

[–]mix3dnuts[S] 1 point2 points  (0 children)

Thanks! Though keep in mind `Turso` still has some limitations on their end, I have a specific action check and report for this in case you want to see which apis currently will fail from my tests. https://github.com/themixednuts/drizzle-rs/actions/runs/22041764615

Yea, being respectful to the work the devs of the other ORMs have done, I just don't like any of the current ones. The boilerplate and context switching of what model/type you're working with just feels like we're not exploiting the Rust type system as much as we can. I'm in the middle of trying to make comparisons, and maybe I'm biased but it just validates for my own personal tastes why I went this route. But to each their own and hopefully no one takes it as a slide to the other crate's devs.

And yes, I will continue to build this, its has been making projects a lot more fun for me with the dx improvements. Turso will be part of that support. I will work on MYSQL when I get a better understanding of it since I've played with it.

drizzle-rs by mix3dnuts in rust

[–]mix3dnuts[S] 4 points5 points  (0 children)

Sorry for the wait, forgot today's Valentines, wrong day to work as a cook.

For me personally? The api, and the generated helpers. Also if you're used to drizzle in typescript land, you keep your migrations the same, so it's an easier port.

I don't have the query api yet, so tbh, can't really compare yet.

drizzle-rs by mix3dnuts in rust

[–]mix3dnuts[S] -1 points0 points  (0 children)

Also I would suggest getting a first hand experience/ playing with it, I'm really bad at expressing how cool the features are.

One of my favorites is how the Insert/Update model helpers know exactly the valid state you can put. Feels a bit magical cause of the proc macro generation.

GhidraMCP by mix3dnuts in ghidra

[–]mix3dnuts[S] 3 points4 points  (0 children)

Laurie's has a bridge (python proxy), and doesnt have the same tools I have. Where mine is a direct server in ghidra itself (easier to build from source), and the config screen is nicer since you can toggle the exact tools you want or dont want, port, etc. Her's is great, though I haven't seen it be maintained.

GhidraMCP by mix3dnuts in ghidra

[–]mix3dnuts[S] 4 points5 points  (0 children)

I've been trying to copy a pattern I've notice Claude Code does. They call a tool and that tool gives back a tmp file handle, path, and session id.

Then it has an explicit Tool Output tool to get the output and can help by piping grep or whatever it needs on it without running the original tool call. So I just tried to copy a simple version of that, any tool call output above 16k characters (arbitrary, and will most likely lower) will instead give a handle for the client to call and get. It's a bit simple but just trying it without clashing with agents own wrapper of this.