Seed
yatima-lang-alpha
Seed | yatima-lang-alpha | |
---|---|---|
36 | 9 | |
3,787 | 450 | |
0.2% | - | |
4.2 | 0.0 | |
8 months ago | about 1 year ago | |
Rust | Rust | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Seed
-
Yew alternatives
Practically every Rust web frontend I've seen takes a react-like approach, with "hooks" to store all of the state in. The now-abandoned Seed and Yew's struct components use a message-passing approach, where the state is stored as member variables on the struct representing the component that are updated based on messages dispatched by event handlers. There's also egui, which has a completely different paradigm that involves making the UI from scratch every frame based on the app's current state. It's not a web framework the same way as the others, but it can draw its UI to a web canvas just fine.
-
Want a web app to respond to local file changes. Is Tauri the solution here?
Sycamore, Yew, or Seed if you want a full-stack solution. (Or Leptos if you want something that's faster but less mature.)
-
Full-stack authentication system using rust (actix-web) and sveltekit
An authentication system is an integral part of modern applications. It's so important that almost all modern applications have some sort of it. Because of their critical nature, such systems should be secure and should follow OWAP®'s recommendations on web security and password hashing as well as storage to prevent attacks such as Preimage and Dictionary attacks (common to SHA algorithms). To demonstrate some of the recommendations, we'll be building a robust session-based authentication system in Rust and a complementary frontend application. For this article series, we'll be using Rust's actix-web and some awesome crates for the backend service. SvelteKit will be used for the frontend. It should be noted however that what we'll be building is largely framework agnostic. As a result, you can decide to opt for axum, rocket, warp or any other rust's web framework for the backend and react, vue or any other javascript framework for the frontend. You can even use rust's yew, seed or some templating engines such as MiniJinja or tera at the frontend. It's entirely up to you. Our focus will be more on the concepts.
-
Rust tech stack
If you want to do fullstack/SPA stuff, check out Sycamore, Seed, and Yew.
-
rust web dev??
If you want to do front-end SPA development, take a look at Yew, Seed, or Sycamore.
-
Blazor United - When it ships it would be the most glorious way to do web with .NET
Aside from Blazor there's already some other projects like Yew (rust), seed (rust), asm-dom (C++) and vugu (Go) and more that have decent followings and activity. A lot more (especially managed languages) are waiting for some features to come online like wasm GC and host bindings (direct wasm access to browser apis which includes the DOM). It'll take a bit of time, but it'll get there eventually.
-
Recommended web-app framework for newbies and juniors?
To click * https://crates.io/crates/percy * https://crates.io/crates/seed * https://crates.io/crates/perseus * https://crates.io/crates/sycamore
-
Back to School: Free Rust Courses
For desktop apps maybe check out Tauri . You can use it with a lot of (web)frontend options including yew/wasm (also Seed ) if you want to go 100% Rust. Actix and Rocket are options for web framework. Also have look at the Building a Command Line Program in the book. I found it really helpful since i am just starting to learn myself.
- Tauri – Creating Tiny Desktop Apps
-
They interviewed the founder of a full-stack Rust framework called "MoonZoon" in this newsletter. Has anyone here used MoonZoon before?
I haven't been keeping up with it, but have heard of it. If ibrecall correctly it was created by the developer that initially developed seed (https://seed-rs.org/)
yatima-lang-alpha
- Yatima has received a Web 3.0 Grant!
-
Yatima: A programming language for the decentralized web
Sure, so I do use petgraph for actually visualizing the lambda DAG graphs, since it's got a very nice graphviz integration: https://github.com/yatima-inc/yatima/blob/059b0abccd0ca54b9a....
You can see the output of that here: https://i.redd.it/94zg24fboyv61.png
(N.B. We removed that module from the language core since we're trying to make that no_std, but we're adding it back to our utils crate soon: https://github.com/yatima-inc/yatima/issues/70)
But we can't use petgraph for the actual computational lambda-DAG because of performance. For example, one thing we get by using pointers is constant-time insertion and removal of of parent nodes (every node in the graph points to their parent). We actually wrote our own Doubly-Linked-List in Rust (it can be done!) to store pointers to the parents for this reason: https://github.com/yatima-inc/yatima/blob/main/core/src/dll.....
There's also memory concerns, given that the lambda-DAG collects its own garbage, freeing space allocated for nodes when no longer in use, whereas I believe petgraph is just `Vec` internally, which would require shrinking, and that would also be slow.
All this low-level pointer manipulation was, tbh, a huge amount of work, but the end result is a performant lazy lambda-calculus reducer with sharing in a few thousand lines of Rust, which means fast lambdas on wherever WASM runs.
(That said, I'm a little bit concerned about cache misses with all the pointer chasing we do, but I haven't yet gotten around to profiling different Yatima expressions to measure this. Would be a great project for an OSS contributor too, so I'll probably make a GH issue for it!)
What are some alternatives?
yew - Rust / Wasm framework for creating reliable and efficient web applications
matrix.to - A simple stateless privacy-protecting URL redirecting service for Matrix
Rocket - A web framework for Rust.
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
rust-dominator - Zero-cost ultra-high-performance declarative DOM library using FRP signals for Rust!
ATS-Xanadu - Bootstrapping ATS3
sauron - A versatile web framework and library for building client-side and server-side web applications
base64-bytestring - Fast base64 encoding and decoding for Haskell.
percy - Build frontend browser apps with Rust + WebAssembly. Supports server side rendering.
introit - The Yatima Standard Library
sycamore - A library for creating reactive web apps in Rust and WebAssembly
stdweb - A standard library for the client-side Web