OkHttp
gRPC
OkHttp | gRPC | |
---|---|---|
52 | 13 | |
46,383 | 11,741 | |
0.3% | 0.7% | |
9.3 | 9.6 | |
2 days ago | 1 day ago | |
Kotlin | Java | |
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.
OkHttp
-
What is OkHttp? Exploring Open Source Funding, Licensing, and Community Engagement
This post dives into the evolution of OkHttp––a widely used Java HTTP client––focusing on its open source business model, funding strategies, licensing under Apache 2.0, and strong community engagement. We discuss key concepts and features, explore practical applications, analyze challenges, and forecast future trends in open source sustainability. In doing so, we compare OkHttp’s model with emerging tokenized and decentralized funding approaches. Along the way, we include references to authoritative resources (such as Square’s OkHttp GitHub repository and the official OkHttp website), as well as insightful discussions from various developer communities.
- 안드로이드 앱의 API 응답 캐싱
-
OkHttp: The HTTP Client That Will Blow Your Mind!
View the Project on GitHub
-
Unveiling Open Source Success: The Inspiring Story of OkHttp
OkHttp shines not only as a tool but also as a case study in sustainable open source practices. By combining consistent funding with a culture of open collaboration, Square has created an environment where rapid innovation meets robust quality assurance. With extensive documentation available on the official OkHttp website, developers worldwide can learn best practices and integrate OkHttp into their projects with ease. Furthermore, the thriving community around OkHttp has provided a rich repository of tutorials, performance benchmarks, and case studies. This collaborative approach not only accelerates problem-solving but also ensures that the tool evolves in tandem with emerging industry trends. As alternative funding models, including tokenized systems, gain traction in the open source arena, OkHttp continues to stand as a testament to the efficacy of conventional corporate-backed contributions.
-
Comprehensive Guide to OkHttp for Java and Kotlin
When building applications that communicate over the web, a reliable and efficient HTTP client is essential. OkHttp, one of the most popular HTTP clients for Java and Android development, stands out as a powerful tool for handling network operations.
-
Tutorial: Build a Java SDK based on OpenAPI Spec
Your SDK will need a reliable HTTP client to interact with APIs. For Java, consider HttpClient from the standard library or popular libraries like OkHttp if you need more flexibility.
-
OpenSSL bug exposed up to 255 bytes of server heap and existed since 2011
> Issue summary: Calling the OpenSSL API function SSL_select_next_proto with an empty supported client protocols buffer may cause a crash or memory contents to be sent to the peer.
BoringSSL fix: https://boringssl.googlesource.com/boringssl/+/c1d9ac02514a1...
The heap leak was independently observed in 2014 in the Android okhttp library: https://github.com/square/okhttp/issues/437#issuecomment-358...
-
Consuming and Testing third party API's using Spring Webclient
We will use Square’s Mock Webserver to spin up a mock server which we can use to simulate real api's request to the get coffee endpoint.
-
Chat with any GPT right through your favorite text editor
OkHttp Documentation
-
Is there a server simulator available for testing API endpoints with low code or no code configuration?
mockwebserver -> https://github.com/square/okhttp/tree/master/mockwebserver
gRPC
- Using gRPC for (local) inter-process communication – F. Werner's Research Page
-
gRPC: The Bad Parts
> Except for our most used language, Java.
The official Java implementation of grpc looks like abandonware. Out of the box the builder includes an annotation (javax.annotation.Generated) that was deprecated in 2019:
https://github.com/grpc/grpc-java/issues/9179
This gives me serious pause.
- FLaNK Stack Weekly 12 February 2024
-
Reference Count, Don't Garbage Collect
That's not true at all. Case in point In general, this is not a problem that AGC can solve. The language can help (something Java is admittedly particularly bad at) but even so, there'll always be avenues for leaks. That's just the nature of shared things. Interestingly, in the linked grpc case, the leaked memory is only half the problem -- AGC doesn't help at all with the leaked HTTP2 connection.
-
Distroless Alpine
I've trialled my new image with an existing project via JLink that's heavy on Netty and gRPC the image works great (with a small tweak to exclude grpc-netty-shaded due to grpc-java#9083).
-
What are the user agents?
When developing an application, the vast majority of code is written by other people. We import that code and make use of it to get whatever we need done. In this case, the developer of an various android applications are using grpc-java.
-
Buf raises $93M to deprecate REST/JSON
`proto_library` for building the `.bin` file from protos works great. Generating stubs/messages for "all" languages does not. Each language does not want to implement gRPC rules, the gRPC team does not want to implement rules for each language. Sort of a deadlock situation. For example:
- C++: https://github.com/grpc/grpc/blob/master/bazel/cc_grpc_libra...
- Python: https://github.com/grpc/grpc/blob/master/bazel/python_rules....
- ObjC: https://github.com/grpc/grpc/blob/master/bazel/objc_grpc_lib...
- Java: https://github.com/grpc/grpc-java/blob/master/java_grpc_libr...
- Go (different semantics than all of the other): https://github.com/bazelbuild/rules_go/blob/master/proto/def...
But there's also no real cohesion within the community. The biggest effort to date has been in https://github.com/stackb/rules_proto which integrates with gazelle.
tl;dr: Low alignment results in diverging implementations that are complicated to understand for newcomers. Buff's approach is much more appealing as it's a "this is the one way to do the right thing" and having it just work by detecting `proto_library` and doing all of the linting/registry stuff automagically in CI would be fantastic.
-
grpc_bench: open-source, objective gRPC benchmark
Small clarification (to my understanding, I'm not a Java Guru) on why Java got on top - those Java implementations use something called Direct Executor. It's super performant when there's no chance of a blocking operation. But if you are to do anything more than echo service, you might be in trouble. Other implementations probably don't suffer from the same constraint. The related discussion can be found in this PR.
-
Android Java GRPC Tutorial
clone https://github.com/grpc/grpc-java
-
GRPC
If you do streaming then the best option would be to use a so called manual flow control. You can find an example here.
What are some alternatives?
unirest-java - Unirest in Java: Simplified, lightweight HTTP client library.
Finagle - A fault tolerant, protocol-agnostic RPC system
Async Http Client - Asynchronous Http and WebSocket Client library for Java
Netty - Netty project - an event-driven asynchronous network application framework
Dubbo - The java implementation of Apache Dubbo. An RPC and microservice framework.