Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Web programming Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
gutenberg
A fast static site generator in a single binary with everything built-in. https://www.getzola.org
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
rust-musl-builder
Docker images for compiling static Rust binaries using musl-libc and musl-gcc, with static versions of useful C libraries. Supports openssl and diesel crates.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Yew is a framework for creating reliable and efficient web applications. Yew
At the bottom of the Rocket web site there are a few sponsors listed Kindness.ai, ohne Makler, 1Password, Signal Insight, and Edwin Olback. There are more sponsors on GitHub sponsors page
Project mention: Empowering Web Privacy with Rust: Building a Decentralized Identity Management System | dev.to | 2024-04-09Actix Web Documentation: Detailed documentation on using Actix-web, including examples and best practices for building web applications with Rust.
Project mention: The Linux Kernel Prepares for Rust 1.77 Upgrade | news.ycombinator.com | 2024-02-18> If you are equally picky and constrain yourself to parts of the ecosystem which care about binary size, you still have more options and can avoid size issues.
What's an example of this for, say, libcurl? On my system it has a tiny number of recursive dependencies, around a dozen. [0] Furthermore if I want to write a C program that uses libcurl I have to download zero bytes of data ... because it's a shared library that is already installed on my system, since so many programs already use it.
I don't really know the appropriate comparison for Rust. reqwest seems roughly comparable, but it's an HTTP client library, and not a general purpose network client like curl. Obviously curl can do a lot more. Even the list of direct dependencies for reqwest is quite long [1], and it's built on top of another http library [2] that has its own long list of dependencies, a list that includes tokio, no small library itself.
In terms of final binary size, the installed size of the curl package on my system, which includes both the command line tool and development dependencies for libcurl, is 1875.03 KiB.
[0] I'm excluding the dependency on the ca-certificates package, since this only provides the certificate chain for TLS and lots of programs rely on it.
[1] https://crates.io/crates/reqwest/0.11.24/dependencies
[2] https://crates.io/crates/hyper/0.14.28/dependencies
Case study 3: Zola
Project mention: The Linux Kernel Prepares for Rust 1.77 Upgrade | news.ycombinator.com | 2024-02-18> If you are equally picky and constrain yourself to parts of the ecosystem which care about binary size, you still have more options and can avoid size issues.
What's an example of this for, say, libcurl? On my system it has a tiny number of recursive dependencies, around a dozen. [0] Furthermore if I want to write a C program that uses libcurl I have to download zero bytes of data ... because it's a shared library that is already installed on my system, since so many programs already use it.
I don't really know the appropriate comparison for Rust. reqwest seems roughly comparable, but it's an HTTP client library, and not a general purpose network client like curl. Obviously curl can do a lot more. Even the list of direct dependencies for reqwest is quite long [1], and it's built on top of another http library [2] that has its own long list of dependencies, a list that includes tokio, no small library itself.
In terms of final binary size, the installed size of the curl package on my system, which includes both the command line tool and development dependencies for libcurl, is 1875.03 KiB.
[0] I'm excluding the dependency on the ca-certificates package, since this only provides the certificate chain for TLS and lots of programs rely on it.
[1] https://crates.io/crates/reqwest/0.11.24/dependencies
[2] https://crates.io/crates/hyper/0.14.28/dependencies
Rust has several, production ready, REST API frame works.
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.
Well, no, that's not really a fair assessment. Someone is quite literally doing "rails but for Rust" with loco: https://loco.rs
As far as I know, the bulk of this effort has been one developer pushing it along. I wouldn't personally use it but it _does_ exist.
It's also worth noting that these older frameworks all come from a different era of development - nowadays most newer devs seem to want to build microservice-after-microservice, where these don't quite fit into the picture.
Project mention: Announcing Nickel 1.0, a configuration language written in (and usable from) Rust | /r/rust | 2023-06-08There's a popular web framework called Nickel already: https://nickel-org.github.io/
Project mention: Top Rust Web Frameworks: Rocket, Actix-web, Tide, Warp, and Gotham | dev.to | 2023-06-14Gotham Gotham, Rust's flexible web framework, is a trustworthy ally for developers looking for safety, security, and extensibility in their web applications. Gotham provides developers with a solid foundation for building secure and efficient web solutions, thanks to its powerful routing system and support for asynchronous request handling. Gotham helps developers avoid common pitfalls and ensures code integrity by prioritizing safety. Its extensible design makes it simple for developers to customize and enhance their applications, making Gotham an excellent choice for projects requiring flexibility and a focus on security.
I also enjoyed using ureq as an http client.
Web programming related posts
-
Sponsoring the Rust-based Rocket Web framework
-
Surprisingly Powerful – Serverless WASM with Rust Article 1
-
Show HN: Storing Private Keys in the Browser Securely
-
Authentication using JSON Web Tokens.
-
PHP in 2024
-
Empowering Web Privacy with Rust: Building a Decentralized Identity Management System
-
Replatforming from Gatsby to Zola!
-
A note from our sponsor - InfluxDB
www.influxdata.com | 10 May 2024
Index
What are some of the best open-source Web programming projects? This list will help you:
Project | Stars | |
---|---|---|
1 | yew | 29,972 |
2 | Rocket | 23,440 |
3 | actix-web | 20,330 |
4 | hyper | 13,879 |
5 | gutenberg | 12,743 |
6 | reqwest | 9,205 |
7 | Iron | 6,122 |
8 | Tide | 4,968 |
9 | Seed | 3,787 |
10 | stdweb | 3,434 |
11 | loco | 3,404 |
12 | Nickel | 3,028 |
13 | percy | 2,237 |
14 | Gotham | 2,223 |
15 | tungstenite-rs | 1,726 |
16 | ureq | 1,570 |
17 | rust-musl-builder | 1,516 |
18 | ws-rs | 1,454 |
19 | cargo-web | 1,099 |
20 | Rouille, Rust web server middleware | 1,078 |
21 | curl-rust | 992 |
22 | tiny-http | 957 |
23 | Sapper | 617 |
Sponsored