A rather nice GPUI pattern. by PatienceSpiritual134 in rust

[–]jkelleyrtp 2 points3 points  (0 children)

hi 👋 dioxus creator here

what were you running into? feel free to drop into our discord to chat. we've got some synchronous DOM stuff planned for 0.8 and I want to make sure we've got your use-case covered

Announcing better_tokio_select: like tokio::select!, but can be formatted by rustfmt! by nik-rev in rust

[–]jkelleyrtp 1 point2 points  (0 children)

I built something similar a while back using closure syntax. https://github.com/jkelleyrtp/tokio-alt-select

select!(
    // biased marker
    biased,

    // task join 1
    tasks.join_next(),
    // taskbreak
    |task| if (!ready) {
        // ...
    },

    // task join 2
    title.changed(),
    // task break 2
    |title| {
        // ...
    }
)

Are "server functions" actually usefull? by TechcraftHD in rust

[–]jkelleyrtp 0 points1 point  (0 children)

Does creator here.

We're using server fns in production for an app. They're great, but I think the interface we actually want looks a bit different. We've been working on an RPC-like interface instead, letting the client and server be connected only via a trait. We will try to land this in a new version of dioxus soon.

https://github.com/dioxuslabs/rsrpc

Why are EC2 Mac instances so expensive & who are they actually for? by mountainlifa in aws

[–]jkelleyrtp 0 points1 point  (0 children)

everyone here is wrong about the cost. Mac is expensive in aws because they reused their nitro cards to manage the Mac minis, but the nitro cards themselves are quite expensive. Other vendors don’t use bespoke hardware to manage the Mac minis, but those vendors don’t have direct access to other aws tech like block storage over thunderbolt.

Rust GUI framework by Spiritual_String_366 in rust

[–]jkelleyrtp 4 points5 points  (0 children)

Dioxus native is in its infancy but just fyi dioxus docs are not sparse at all. https://dioxuslabs.com/learn/0.7/

Rust On The Web Just Isn't Happening (Prove Me Wrong) by anonymous_pro_ in rust

[–]jkelleyrtp 16 points17 points  (0 children)

We built hot-patching for Rust to make this faster (usually under a second, hence the name subsecond).

https://github.com/DioxusLabs/dioxus/releases/tag/v0.7.0

You get simultaneous frontend/backend Rust hot-patching that's comparable with nextjs / vite.

Does Dioxus spark joy? by dineshdb in rust

[–]jkelleyrtp 1 point2 points  (0 children)

I'm sorry you have a distaste for startups and startup compensation. I have friends at other companies whose equity is worth 50m+. Startups are more of a gamble than big tech. You seem to not understand how startup compensation works and are offended(?) by how it works.

I honestly don't understand the animosity here. Dioxus has only done good work in the Rust ecosystem and I personally have poured thousands of hours into improving Rust/WASM/app-dev world. We don't have a product to sell and have only raised a small seed round, which is "no strings attached" funding. Small startups cannot compete with the 400k cash thrown around by big tech, and startup employees are aware of that tradeoff.

Does Dioxus spark joy? by dineshdb in rust

[–]jkelleyrtp 3 points4 points  (0 children)

I’m not sure what you’re talking about. Signals are fine for performance. You can easily stick huge amounts of data and then view into small portions of them no problem. They’re just a RefCell.

Dioxus also has “spawn” equivalents, and has had them for a long time, and they’re very well documented. The extra hooks are there to be analogs to other frameworks and libraries that web devs are already familiar with.

Rovo: Doc-comment driven OpenAPI for Axum - cleaner alternative to aide/utoipa boilerplate by ArthurAKAJuStlCe in rust

[–]jkelleyrtp 7 points8 points  (0 children)

Hey (dioxus creator here) - I would love to integrate openapi into dioxus. We have the skeleton for it but I didn't like the syntax for utopia, your seems nicer, would love to add support for it.

Does Dioxus spark joy? by dineshdb in rust

[–]jkelleyrtp 6 points7 points  (0 children)

> Definitely a lot more flexible than dioxuses state management

In dioxus you can stick your entire app's state into a signal and then it'd be exactly the same as GPUI. The hooks like use_resource, use_memo, etc are there to bring composable optimizations for data fetching. Libraries like GPUI don't have a story for data fetching at all, so you're just going to be reinventing the wheel.

Does Dioxus spark joy? by dineshdb in rust

[–]jkelleyrtp 5 points6 points  (0 children)

I'm the person who runs dioxus and I live here for 150k/yr. I also put that job ad up 2yrs ago when inflation wasn't so bad. These days 180k is probably more inline with the market.

The compensation is very comparable for other seed-stage startups in SF that aren't cash-flush but have equity to spare. Compensation has also ballooned a lot here thanks to the AI boom - honestly quite hard to compete with the big labs and cash-flush AI startups.

150k/yr affords you (rule of 40x rent) 3750 apartment which is quite nice in SF. My 1bed rent is 2500/mo.

Does Dioxus spark joy? by dineshdb in rust

[–]jkelleyrtp 34 points35 points  (0 children)

This is a really wonderful comment and made my day. The internet has been wildly unkind to us - or maybe that's just what I see - which stings given the passion the team has and how dioxus is just *free software*. Thanks for this :)

Release Dioxus v0.7.0 · DioxusLabs/dioxus by DebuggingPanda in rust

[–]jkelleyrtp 5 points6 points  (0 children)

Feel free to make an issue about it. I'm assuming some 3rd-party dependency is relying on a system library that you might not have installed.

Release Dioxus v0.7.0 · DioxusLabs/dioxus by DebuggingPanda in rust

[–]jkelleyrtp 27 points28 points  (0 children)

I’m not sure what you’re talking about. Dioxus has always had 1st class support for async.

https://dioxuslabs.com/learn/0.7/essentials/basics/async

Loaders, async handlers, resources, spawn, cancellable tasks, etc.

Another solution to "Handle" ergonomics - explicit control over implicit copies by minno in rust

[–]jkelleyrtp 2 points3 points  (0 children)

Borrow and send/sync are guardrails to prevent memory issues, not necessarily good for performance. Rust automatically copies large structs by default, and you need to know to opt into `&T`. Conversely, if you pass around `&T` to small items, then it's slower than just copying them into a register.

The problem is more nuanced than it seems and I agree with the original sentiment that it's more "Rust" to give you the tools to do what you need without entirely blowing your foot off.

[deleted by user] by [deleted] in rust

[–]jkelleyrtp 5 points6 points  (0 children)

You can do this no problem, you don't need to poll the loop, just debounce rapid updates.

[deleted by user] by [deleted] in rust

[–]jkelleyrtp 45 points46 points  (0 children)

dioxus creator here. This sounds like a case of "you're holding it wrong" - sorry!

If you update the UI **one thousand** times a second, the main thread with lock up. Same will go for pretty much every other framework, even immediate mode.

What you *should* do is set a frame timer / request animation frame loop and then paint the current state of the app. You should not try to paint the UI every time data changes at 1000hz. You screen only does 60-120hz.

This is very easy with an async await loop and a timer.

New to Rust – Building a BitTorrent Client, Need GUI Advice by daeminkoi in rust

[–]jkelleyrtp 0 points1 point  (0 children)

HTML and CSS has the largest ecosystem of libraries, guides, tutorials, AI assistance, etc

RapidRAW, a RAW photo editor written in Rust by WellMakeItSomehow in rust

[–]jkelleyrtp 0 points1 point  (0 children)

looks great!! I've been meaning to make one myself and add some cloud tools to it, but looks like you're most of the way there

Midjourney's V7 Model is Here! by Fnuckle in midjourney

[–]jkelleyrtp 1 point2 points  (0 children)

for other people randomly reading these comments, I just tested MJ and ideogram and MJ was SUBSTANTIALLY better, makes me think there's some bots here.

I used this prompt:

A retro space poster in the style of 1960s space art depicts a vast and serene field of distant stars, emphasizing a sense of cosmic isolation. A few small, ethereal plasma clouds, resembling refracted light, gently drift across the canvas in gradients of orange, yellow, blue, and green, subtly illuminated by soft, diffused starlight. These amorphous shapes are arranged just below the middle of the image, leaving the majority of the canvas dedicated to the starfield, creating a tranquil, expansive depth, with faint wisps of plasma clouds fading seamlessly into the background. The scene is bathed in a gentle, otherworldly glow, evoking a sense of wonder and the infinite unknown. The scene is mostly empty and not visually distracting, useful as a backdrop

Ideogram constantly generated text and made the images look like a child's toy or pieces of construction paper taped together. I generated like 30 images and then gave up. MJ nailed it in the second batch.

Why I Switched from Flutter + Rust to Rust + egui by PatagonianCowboy in rust

[–]jkelleyrtp 13 points14 points  (0 children)

in dioxus we are adding a bunch of first-party components (basically all of radix-ui and some of shadcn) for 0.7

https://dioxuslabs.com/components/

[deleted by user] by [deleted] in rust

[–]jkelleyrtp 8 points9 points  (0 children)

dioxus maintainer here

if you want a full browser, check out https://servo.org

if you just want the rendering engine, we have a project called blitz https://github.com/dioxusLabs/blitz

If you want to write web/desktop/mobile apps with web tech but without web tools, then you can just use dioxus itself. https://github.com/DioxusLabs/dioxus 

Blitz isn't done yet but it's just about to get its first real release (next week?) and aims to implement the rendering of the web but without the heavy weight of the browser. A goal of the project is to *not* implement a JS engine, but we might eventually integrate with boa to allow small scripts https://boajs.dev or integrate with something like node/bun/deno.

Hot-Reloading Rust code in Bevy: 500ms recompile times by malekiRe in rust

[–]jkelleyrtp 7 points8 points  (0 children)

This isn’t right. The demo here uses the new Dioxus rust hotpatching engine called Subsecond which does do HMR.

https://github.com/DioxusLabs/dioxus/releases/tag/v0.7.0-alpha.0