SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Ruby HTTP 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.
-
RESTClient
Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
-
HTTP
HTTP (The Gem! a.k.a. http.rb) - a fast Ruby HTTP client with a chainable API, streaming support, and timeouts
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
A internal network boundary is probably worth it for heavy jobs, since you usually don't want it to interfere with serving web requests (no matter the tech).
You probably already know what I would say to each of those examples.
> Rails timing out after 30s while allocating 500MB of memory (mostly) in ActiveRecord to compute 5MB of JSON to return to an API caller.
I can make a JS or Go program perform the same way. In fact the exact same thing happened in my shop with Go/Gorm. The key question is: how do you compute the 5mb of JSON? The devil is in those details. We changed the way we computed ours, and the issue was gone.
> 90% of request latency of ~10s spent waiting for downstream services to respond to requests. Most of these could be fired off concurrently (ie `Promise.all` in node). 9s/10s this Rails worker is sitting around doing nothing and eating up ~300MB of memory.
This sounds broken. Why is the worker doing nothing for 9 out of 10s? But like I said earlier, there are a bunch of ways to use HTTP1.1 pipelining to run them concurrently. (https://github.com/excon/excon and https://github.com/HoneyryderChuck/httpx support it, but you can also do that with Net::HTTP I believe) And you can still start threads, which are still concurrent while blocking on IO.
> trying to extract out Authorization to a centralized service (so that other extracted services don't have to call into the monolith in order to make authorization decisions) is a major pain as the monolith now has to make calls out to the centralized auth system to in order to make authz decisions.
This seems unrelated to Rails. Not sure why monolith can't continue handling authorization.
Also worth mentioning is httplog, a specialized logging library for tracking third-party API calls that might not be captured in regular logs.
Ruby HTTP related posts
-
REST Man: Simple DSL for Accessing HTTP and REST Resources in Ruby
-
rest-man v1.1.0 release - Simple HTTP and Rest client for Ruby
-
Usando a gem httplog para uma melhor análise dos logs
-
Best Ruby HTTP Clients in 2023
-
Web Scraping Google With Ruby
-
Pattern Matching Interfaces in Ruby
-
hash keys to method names
-
A note from our sponsor - SaaSHub
www.saashub.com | 14 May 2024
Index
What are some of the best open-source HTTP projects in Ruby? This list will help you:
Project | Stars | |
---|---|---|
1 | httparty | 5,760 |
2 | Faraday | 5,665 |
3 | RESTClient | 5,235 |
4 | Typhoeus | 4,064 |
5 | flipper | 3,573 |
6 | HTTP | 2,988 |
7 | Savon | 2,061 |
8 | excon | 1,154 |
9 | down | 997 |
10 | Spyke | 898 |
11 | Http-2 | 875 |
12 | HttpLog | 780 |
13 | Http Client | 698 |
14 | homebrew-extensions | 599 |
15 | Exception Handler | 506 |
16 | Unirest | 365 |
17 | router | 361 |
18 | api | 343 |
19 | Flexirest | 317 |
20 | controller | 245 |
21 | Sawyer | 242 |
22 | tipi | 240 |
23 | forward-proxy | 150 |
Sponsored