reqwest
abseil-cpp
reqwest | abseil-cpp | |
---|---|---|
57 | 56 | |
9,422 | 14,252 | |
- | 1.2% | |
9.0 | 9.6 | |
1 day ago | 7 days ago | |
Rust | C++ | |
Apache License 2.0 | Apache License 2.0 |
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.
reqwest
-
The Linux Kernel Prepares for Rust 1.77 Upgrade
> 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
- What We Need Instead of "Web Components"
-
ReductStore 1.6.0 has been released with new license and client SDK for Rust
ReductStore was rewritten from C++ to Rust a few months ago. We are delighted to be part of the Rust community and have taken a new step towards Rust with the Client SDK. The SDK is powered by reqwest and enables asynchronous integration of the database into Rust applications:
-
Rust dependency woes
From what I could turn up when googling the specific error lines (here), it has something to do with the crate mio not having support for WASM, but I don’t understand what’s being said on this thread.
-
Using Auth0 with Tauri
You can use the tauri-plugin-deep-link crate to register your app as a protocol handler. After you get your code, you can exchange it for an auth token in the same manner as the Electron guide, but for Rust you can use reqwest for the HTTP call.
-
Authentication system using rust (actix-web) and sveltekit - Automated testing
When starting out, we made some design decisions at the backend. The decision will allow us to independently test the service without interfering with the real application using a term called integration testing. We'll utilize two "dev" packages: reqwest and fake. Dev dependencies only get introduced into your application in development or during testing. In production, they are not included:
-
How can I save a blob:<url> to my hard disk? Im currently using Rust to scrape a website, however I dont even know if that is possible
It's possible, you will want to use crates like https://docs.rs/reqwest/ to download the page and https://docs.rs/scraper/ to extract elements from the page.
-
Becoming Rustacean:Awesome Free Online Resources to Learn Rust Programming
Rust allows me to mainly only run the application to confirm things work from a business perspective.
For people starting out building stuff in rust - understand that there is a distinction of async code and libraries and can lead to confusing compiler errors if you don't realize there is a distinction. It's simple in hindsight but did cause me to waste hours barking up the wrong trees at first. Other wise just learn about `match` and Result/Option types asap, they're fundamental.
https://github.com/http-rs/tide tide is great to create an http server / routes
https://github.com/djc/askama I use this to template out HTML and it checks all my boxes, dynamic data, passing in functions, control flow.
https://github.com/launchbadge/sqlx sql interface for a variety of backend, async safe.
https://github.com/seanmonstar/reqwest http client to make requests
Rust is amazing, don't let the initial few speed bumps discourage you - building real things with rust is no more challenging today than any other modern language stack.
-
This Month in hyper: March 2023
Is there any this month in reqwest? I would like to show my interest in https://github.com/seanmonstar/reqwest/issues/39
-
Reqwest cookies feature not working
The relevant issue seems to be https://github.com/seanmonstar/reqwest/pull/1753
abseil-cpp
-
B-Trees Require Fewer Comparisons Than Balanced Binary Search Trees
From the looks of it Rust [1] uses a constant branching factor based on number of items whereas ABSEIL generally uses a target of 256 bytes for branching and fits however many elements fit within that. Rust’s approach seems to be more primitive as ABSEIL is optimizing for cache line usage (not sure why it’s several multiples of a cache line - maybe to help the prefetcher or to minimize cache line bouncing?)
[1] https://github.com/rust-lang/rust/blob/master/library/alloc/...
[2] https://github.com/abseil/abseil-cpp/blob/74f8c1eae915f90724...
[3] https://github.com/abseil/abseil-cpp/blob/74f8c1eae915f90724...
-
AI in Software Engineering at Google
From the screencast:
> implement also for Days
This fails to recognize that this is a bad feature that the Abseil library would explicitly reject (hence the existence of absl::CivilDay) [0], and instead perpetuates the oversimplification that 1 day is exactly 24 hours (which breaks at least twice every year due to DST).
Which is to say: it'll tell you how to do the thing you ask it to do, but will not tell you that it's a bad idea.
And, of course, that assumes that it even makes the change correctly in the first place (which is nowhere near guaranteed, in my experience). I have seen (and bug-reported!) cases where it incorrectly inverts conditionals, introduces inefficient or outright unsafe code, causes unintended side effects, perpetuates legacy (discouraged) patterns, and more.
It turns out that ML-generated code is only as good as its training data, and a lot of google3 does not adhere to current best practices (in part due to new library developments and adoption of new language versions, but there are also many corners of the codebase with, um, looser standards for code quality).
[0] https://github.com/abseil/abseil-cpp/blob/bde089f/absl/time/...
- Sane C++ Libraries
- Open source collection of Google's C++ libraries
- Is Ada safer than Rust?
-
Appending to an std:string character-by-character: how does the capacity grow?
Yeah, it's nice! And Abseil does it, IFF you use LLVM libc++.
https://github.com/abseil/abseil-cpp/blob/master/absl/string...
The standard adopted it as resize_and_overwrite. Which I think is a little clunky.
-
Shaving 40% Off Google’s B-Tree Implementation with Go Generics
This may be confusing to those familiar with Google's libraries. The baseline is the Go BTree, which I personally never heard of until just now, not the C++ absl::btree_set. The benchmarks aren't directly comparable, but the C++ version also comes with good microbenchmark coverage.
https://github.com/google/btree
https://github.com/abseil/abseil-cpp/blob/master/absl/contai...
- Faster Sorting Beyond DeepMind’s AlphaDev
-
“Once” one-time concurrent initialization with an integer
An implementation of call_once that accommodates callbacks that throw: https://github.com/abseil/abseil-cpp/blob/master/absl/base/c...
-
[R] AlphaDev discovers faster sorting algorithms
I wouldn't say it's that cryptic. It's just a few bitwise rotations/shifts/xor operations.
What are some alternatives?
hyper - An HTTP library for Rust
Folly - An open-source C++ library developed and used at Facebook.
curl-rust - Rust bindings to libcurl
Boost - Super-project for modularized Boost
ureq - A simple, safe HTTP client
spdlog - Fast C++ logging library.
Rocket - A web framework for Rust.
Qt - Qt Base (Core, Gui, Widgets, Network, ...)
surf - Fast and friendly HTTP client framework for async Rust
EASTL - Obsolete repo, please go to: https://github.com/electronicarts/EASTL
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
BDE - Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.