Networking

Open-source projects categorized as Networking

Top 23 Networking Open-Source Projects

  • OkHttp

    Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

    Project mention: Save images/videos into storage | reddit.com/r/androiddev | 2022-10-16

    To download files, you can either use URL.openConnection()), a library like OkHttp, or the DownloadManager

  • Alamofire

    Elegant HTTP Networking in Swift

    Project mention: Cracking the iOS Interview | dev.to | 2022-09-10

    Alamofire - Elegant HTTP networking

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

  • Dubbo

    Apache Dubbo is a high-performance, java based, open source RPC framework.

    Project mention: What's the most interesting open-source project to study? | reddit.com/r/learnjava | 2022-01-24

    Dubbo

  • AFNetworking

    A delightful networking framework for iOS, macOS, watchOS, and tvOS.

    Project mention: Awesome macOS Libraries List | dev.to | 2022-01-21

    AFNetworking - A delightful networking framework. Language: Objective-C.

  • Netty

    Netty project - an event-driven asynchronous network application framework

    Project mention: Pull the io_uring transport out of incubator and into core Netty 5 | news.ycombinator.com | 2022-11-10
  • libcurl

    A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. libcurl offers a myriad of powerful features

    Project mention: Comparing curl and mit-scheme as projects tells us why the first is successful and the second is not | reddit.com/r/RacketHomeworks | 2022-11-27

    Someone will say that mit-scheme and the curl project have almost nothing in common. And that's kind of true. And yet, when you look a little closer, you can see that those two projects actually have one thing in common: both projects have only one single person who is the maintainer of the entire project. In the case of the mit-scheme it's Chris Hanson, and in the case of the curl project it's Daniel Stenberg. There is no big (or even small) team in either of these two projects - just one man, each of them is capo di tutti capi in his own project, so to speak.

  • libuv

    Cross-platform asynchronous I/O

    Project mention: Efficient IO in Linux with io_uring [pdf] | news.ycombinator.com | 2022-10-16

    There was some very excellent work done in Node.js's libuv, but it never got across the line & has sat around getting more out of date for a while.

    https://github.com/libuv/libuv/issues/1947#issuecomment-4852...

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • fasthttp

    Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

    Project mention: Go Framework: No Framework? | news.ycombinator.com | 2022-11-29

    "You also get to implement stuff like CSRF protection, cookie signing, anti session fixation, etc. You also lose out on community contributions because you are your own community now."

    In Go, not necessarily, because net/http actually is what many languages would call a "minimalist framework".

    There's a sense in which pretty much everyone here is right. You do need a framework in the general sense; you can't expect to just throw someone a TCP socket and get reasonable work out of them because the web is very complicated nowadays. But the reason why you can "do without a framework" in Go is that it is already a minimal one of its own, and in particular, that "minimality" focuses on providing a mechanism for composing various bits of HTTP code together.

    So, do you need CSRF protection? Go grab this: https://pkg.go.dev/github.com/gorilla/csrf It operates with the integrated net/http Go framework to provide CSRF protection. You are objectively not abandoning the ability to have community-written CSRF protection when you go "frameworkless" in Go. Gorilla in general provides lots of mix-and-match pieces: https://www.gorillatoolkit.org/ , like cookie signing: https://pkg.go.dev/github.com/gorilla/securecookie

    I think calling Go "no framework" is kind of misleading, because I get what you're saying, but the standard library is not the "no framework" option. The "no framework" option is more like using https://github.com/valyala/fasthttp , which is its own server implementation with an incompatible API that does in fact remove you from the community code, other than the code that works only with that server.

    Don't over-read my post. I am merely saying that Go essentially ships with a minimal framework and so it is misleading to say or think of it as being "frameworkless", not that it is mandatory to use it and all other things on top of it are a bad idea. There are times and places to want large, preconfigured packages of additional functionality. But if there are times and places where it is not desirable, Go does come with a minimalist option by default. It is a pretty good, not-very-opionated option suitable for a standard library, where development is slow and there's not much room for experimentation in what a "full" web framework should look like.

    The standard library minimalist framework even makes the other frameworks pluggable. You can, for instance, write an API website, then realize that if you need a conventional HTML website, you can plug in a framework for that part, but leave the API part as-is, simply by routing the API URLs to the existing API code while routing the HTML website to the http.Handler provided by the framework. Even "not using an additional framework" is not the commitment it may be in other environments, because the net/http foundation is still there.

  • tokio

    A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

    Project mention: Rusty Ownership and the Lifecycle’s Stone | news.ycombinator.com | 2022-11-27

    Well, the blog examples are quite trivial.

    Take a look at the standard hashmap implementation (https://doc.rust-lang.org/src/std/collections/hash/map.rs.ht...). Notice the lifetime annotations everywhere. This is a relatively basic data structure, but it has a ton of visual noise due to the constraints of the lifetime and borrow model, and programmers must know, understand and be able to reason about these constraints when using this data structure.

    Now imagine a case where you need to operate on values with two (or more) different lifetimes (by definition, all must live at least as long as the one with smallest lifetime, but in practice they all can and will have different lifetimes). Now you have `'a` and `'b` (and perhaps more) everywhere *and* developers must now reason about that. (random example pulled from a popular networking crate: https://github.com/tokio-rs/tokio/blob/718d6ce8cac9f2e081c0a...)

    It isn't trivial to pick up from scratch, especially if one comes from a much higher level language (C#, Java, python, etc.). This is true even for people who are very experienced writing high-quality, durable, and safe code in other languages (e.g., C++) without the help of a compiler, because the ownership and lifetime model are both different and compiler-enforced.

  • Moya

    Network abstraction layer written in Swift.

    Project mention: Szabadúszó iOS fejlesztőt keresek | reddit.com/r/programmingHungary | 2022-08-04
  • cilium

    eBPF-based Networking, Security, and Observability

    Project mention: Go based eBPF projects | reddit.com/r/golang | 2022-11-27

    Cilium : Container networking based. It is the torch-bearer of eBPF

  • kcptun

    A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。KCPプロトコルに基づく安全なトンネル。KCP 프로토콜을 기반으로 하는 보안 터널입니다。

  • Muduo

    Event-driven network library for multi-threaded Linux server in C++11

  • CocoaAsyncSocket

    Asynchronous socket networking library for Mac and iOS

    Project mention: Awesome macOS Libraries List | dev.to | 2022-01-21

    CocoaAsyncSocket - Asynchronous socket networking library. Language: Objective-C.

  • KCP

    :zap: KCP - A Fast and Reliable ARQ Protocol

    Project mention: Ousterhout: It's time to replace TCP in the Datacenter [pdf] | news.ycombinator.com | 2022-10-30
  • RestKit

    RestKit is a framework for consuming and modeling RESTful web resources on iOS and OS X

    Project mention: Awesome macOS Libraries List | dev.to | 2022-01-21

    RestKit - RestKit is a framework for consuming and modeling RESTful web resources. Language: Objective-C.

  • gRPC

    The Java gRPC implementation. HTTP/2 based RPC

    Project mention: Reference Count, Don't Garbage Collect | reddit.com/r/programming | 2022-08-01

    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.

  • ZeroTier

    A Smart Ethernet Switch for Earth

    Project mention: tunneling services that support .tk domains? | reddit.com/r/selfhosted | 2022-11-28

    I haven't used them, but there are past posts mentioning LocaltoNet, PageKite, and ZeroTier.

  • C++ Workflow

    C++ Parallel Computing and Asynchronous Networking Engine

    Project mention: Workflow v0.10.3 Released, Add WFRepeaterTask for Repeating Asynchronous Operations and Other New Features. | reddit.com/r/cpp | 2022-08-28

    Reference: https://github.com/sogou/workflow/releases/tag/v0.10.3

  • libevent

    Event notification library

    Project mention: Concurrency Model in JavaScript Runtime Environments | dev.to | 2022-09-03
  • uvloop

    Ultra fast asyncio event loop.

    Project mention: A Look on Python Web Performance at the end of 2022 | dev.to | 2022-11-14

    The source code from the project resides in the github, with more than 8.6k stars and 596 forks is a very popular github, but no new releases are made since 2018, looks pure much not maintained anymore, no PR's are accepted no Issues are closed, still without windows or macOS Silicon, or PyPy3 support. Japronto it self uses uvloop with more than 9k stars and 521 forks and different from japronto is seems to be well maintained.

  • Mongoose

    Embedded Web Server (by cesanta)

    Project mention: Embedded Web Server for electronic devices | news.ycombinator.com | 2022-11-14
  • RustScan

    🤖 The Modern Port Scanner 🤖

    Project mention: Is there a good and simple command line alternative to Nmap? | reddit.com/r/cybersecurity | 2022-11-20

    I like RustScan https://github.com/RustScan/RustScan . For one thing, it’s fast!

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-11-29.

Networking related posts

Index

What are some of the best open-source Networking projects? This list will help you:

Project Stars
1 OkHttp 43,178
2 Alamofire 38,600
3 Dubbo 38,120
4 AFNetworking 33,336
5 Netty 30,323
6 libcurl 27,509
7 libuv 20,463
8 fasthttp 18,720
9 tokio 18,320
10 Moya 14,313
11 cilium 13,620
12 kcptun 13,096
13 Muduo 12,281
14 CocoaAsyncSocket 12,280
15 KCP 11,892
16 RestKit 10,245
17 gRPC 10,151
18 ZeroTier 9,850
19 C++ Workflow 9,548
20 libevent 9,336
21 uvloop 9,026
22 Mongoose 8,941
23 RustScan 8,486
Delete the most useless function ever: context switching.
Zigi monitors Jira and GitHub updates, pings you when PRs need approval and lets you take fast actions - all directly from Slack! Plus it reduces cycle time by up to 75%.
www.zigi.ai