Alternatives to Netty logo

Alternatives to Netty

Jetty, Mina, Apache Tomcat, Undertow, and Akka are the most popular alternatives and competitors to Netty.
260
408
+ 1
16

What is Netty and what are its top alternatives?

Netty is a high-performance, asynchronous event-driven networking framework for building network applications in Java. It provides an easy-to-use API that allows developers to write scalable and efficient networked applications. Key features of Netty include support for various protocols such as TCP, UDP, HTTP, and WebSocket, asynchronous IO model using NIO, and a flexible and extensible architecture. However, one limitation of Netty is its relatively steep learning curve for beginners.

  1. Vert.x: Vert.x is a reactive toolkit for building reactive applications on the Java Virtual Machine. Key features include event-driven programming model, support for multiple programming languages, and a scalable and resilient architecture. Pros of Vert.x compared to Netty include a simpler programming model and better support for reactive programming, while a potential con is a smaller community compared to Netty.

  2. Akka: Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient applications in Java and Scala. Key features include actor-based concurrency model, fault tolerance, and location transparency. Pros of Akka compared to Netty include built-in support for clustering and distributed computing, while a potential con is a more complex programming model.

  3. Reactor: Reactor is a reactive programming library for building non-blocking applications on the JVM. Key features include a flexible API, support for both synchronous and asynchronous programming, and integration with Spring Framework. Pros of Reactor compared to Netty include seamless integration with Spring ecosystem, while a potential con is a smaller community compared to Netty.

  4. Undertow: Undertow is a lightweight, high-performance web server for building modern Java applications. Key features include non-blocking IO, support for HTTP/2 and WebSockets, and a flexible embeddable architecture. Pros of Undertow compared to Netty include simpler configuration and easier deployment, while a potential con is lack of support for other protocols like UDP.

  5. Grizzly: Grizzly is a framework for building scalable, high-performance network applications in Java. Key features include a fast and efficient NIO engine, support for various protocols, and integration with Java EE technology. Pros of Grizzly compared to Netty include better integration with Java EE, while a potential con is a less active community compared to Netty.

  6. Jetty: Jetty is a web server and servlet container for building Java web applications. Key features include support for HTTP/2, WebSocket, and Servlet 4.0, as well as a scalable and extensible architecture. Pros of Jetty compared to Netty include better support for web applications, while a potential con is a focus on web applications rather than general network programming.

  7. Ratpack: Ratpack is a set of Java libraries for building modern, high-performance web applications. Key features include a reactive programming model, support for asynchronous and non-blocking IO, and integration with popular JVM languages. Pros of Ratpack compared to Netty include a focus on web application development, while a potential con is a learning curve for developers unfamiliar with reactive programming.

  8. Spring WebFlux: Spring WebFlux is a reactive web framework from the Spring ecosystem for building non-blocking, event-driven applications. Key features include integration with Spring Boot, support for reactive streams, and a functional programming model. Pros of Spring WebFlux compared to Netty include seamless integration with Spring ecosystem and Spring Boot, while a potential con is a more opinionated programming model.

  9. Gevent: Gevent is a coroutine-based networking library for Python that provides a high-level concurrency API. Key features include greenlet-based concurrency, asynchronous IO, and integration with popular Python libraries. Pros of Gevent compared to Netty include ease of use for Python developers, while a potential con is limited support for Java applications.

  10. Twisted: Twisted is an event-driven networking engine for building networked applications in Python. Key features include support for various protocols, deferred execution model, and a rich set of modules for building different types of applications. Pros of Twisted compared to Netty include rich library ecosystem, while a potential con is a steeper learning curve for beginners in Python.

Top Alternatives to Netty

  • Jetty
    Jetty

    Jetty is used in a wide variety of projects and products, both in development and production. Jetty can be easily embedded in devices, tools, frameworks, application servers, and clusters. See the Jetty Powered page for more uses of Jetty. ...

  • Mina
    Mina

    Mina works really fast because it's a deploy Bash script generator. It generates an entire procedure as a Bash script and runs it remotely in the server. Compare this to the likes of Vlad or Capistrano, where each command is run separately on their own SSH sessions. Mina only creates one SSH session per deploy, minimizing the SSH connection overhead. ...

  • Apache Tomcat
    Apache Tomcat

    Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. ...

  • Undertow
    Undertow

    It is a flexible performant web server written in java, providing both blocking and non-blocking API’s based on NIO. It has a composition based architecture that allows you to build a web server by combining small single purpose handlers. The gives you the flexibility to choose between a full Java EE servlet 4.0 container, or a low level non-blocking handler, to anything in between. ...

  • Akka
    Akka

    Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM. ...

  • NGINX
    NGINX

    nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018. ...

  • Spring Boot
    Spring Boot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. ...

  • Node.js
    Node.js

    Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. ...

Netty alternatives & related posts

Jetty logo

Jetty

465
308
43
An open-source project providing an HTTP server, HTTP client, and javax.servlet container
465
308
+ 1
43
PROS OF JETTY
  • 14
    Lightweight
  • 10
    Very fast
  • 9
    Embeddable
  • 5
    Scalable
  • 5
    Very thin
CONS OF JETTY
  • 0
    Student

related Jetty posts

Mina logo

Mina

77
72
9
Really fast deployer and server automation tool
77
72
+ 1
9
PROS OF MINA
  • 6
    Easy, fast and light weight
  • 2
    Reusable task
  • 1
    Ruby
CONS OF MINA
    Be the first to leave a con

    related Mina posts

    Apache Tomcat logo

    Apache Tomcat

    16.4K
    12.2K
    201
    An open source software implementation of the Java Servlet and JavaServer Pages technologies
    16.4K
    12.2K
    + 1
    201
    PROS OF APACHE TOMCAT
    • 79
      Easy
    • 72
      Java
    • 49
      Popular
    • 1
      Spring web
    CONS OF APACHE TOMCAT
    • 2
      Blocking - each http request block a thread
    • 1
      Easy to set up

    related Apache Tomcat posts

    Остап Комплікевич

    I need some advice to choose an engine for generation web pages from the Spring Boot app. Which technology is the best solution today? 1) JSP + JSTL 2) Apache FreeMarker 3) Thymeleaf Or you can suggest even other perspective tools. I am using Spring Boot, Spring Web, Spring Data, Spring Security, PostgreSQL, Apache Tomcat in my project. I have already tried to generate pages using jsp, jstl, and it went well. However, I had huge problems via carrying already created static pages, to jsp format, because of syntax. Thanks.

    See more
    Tomas Zeman
    product manager at Broadcom · | 3 upvotes · 18.2K views
    Shared insights
    on
    PlayPlayApache TomcatApache Tomcat
    at

    I use Play as the best Java framewrk for web development. It is easy to use and I was able to learn it quickly. Before I was using Apache Tomcat , but I would never go back. Play is preselecting for you popular and usefull libraries, you can use templating with Twirl, JPA, Injections and much more.

    See more
    Undertow logo

    Undertow

    49
    93
    5
    A flexible performant web server written in java
    49
    93
    + 1
    5
    PROS OF UNDERTOW
    • 4
      Performance
    • 1
      Lower footprint
    CONS OF UNDERTOW
    • 1
      Smaller community
    • 1
      Less known

    related Undertow posts

    Akka logo

    Akka

    1.1K
    1K
    88
    Build powerful concurrent & distributed applications more easily
    1.1K
    1K
    + 1
    88
    PROS OF AKKA
    • 32
      Great concurrency model
    • 17
      Fast
    • 12
      Actor Library
    • 10
      Open source
    • 7
      Resilient
    • 5
      Message driven
    • 5
      Scalable
    CONS OF AKKA
    • 3
      Mixing futures with Akka tell is difficult
    • 2
      Closing of futures
    • 2
      No type safety
    • 1
      Very difficult to refactor
    • 1
      Typed actors still not stable

    related Akka posts

    To solve the problem of scheduling and executing arbitrary tasks in its distributed infrastructure, PagerDuty created an open-source tool called Scheduler. Scheduler is written in Scala and uses Cassandra for task persistence. It also adds Apache Kafka to handle task queuing and partitioning, with Akka to structure the library’s concurrency.

    The service’s logic schedules a task by passing it to the Scheduler’s Scala API, which serializes the task metadata and enqueues it into Kafka. Scheduler then consumes the tasks, and posts them to Cassandra to prevent data loss.

    See more
    Shared insights
    on
    AkkaAkkaKafkaKafka

    I decided to use Akka instead of Kafka streams because I have personal relationships at @Lightbend.

    See more
    NGINX logo

    NGINX

    112.3K
    60.1K
    5.5K
    A high performance free open source web server powering busiest sites on the Internet.
    112.3K
    60.1K
    + 1
    5.5K
    PROS OF NGINX
    • 1.4K
      High-performance http server
    • 893
      Performance
    • 730
      Easy to configure
    • 607
      Open source
    • 530
      Load balancer
    • 288
      Free
    • 288
      Scalability
    • 225
      Web server
    • 175
      Simplicity
    • 136
      Easy setup
    • 30
      Content caching
    • 21
      Web Accelerator
    • 15
      Capability
    • 14
      Fast
    • 12
      High-latency
    • 12
      Predictability
    • 8
      Reverse Proxy
    • 7
      The best of them
    • 7
      Supports http/2
    • 5
      Great Community
    • 5
      Lots of Modules
    • 5
      Enterprise version
    • 4
      High perfomance proxy server
    • 3
      Reversy Proxy
    • 3
      Streaming media delivery
    • 3
      Streaming media
    • 3
      Embedded Lua scripting
    • 2
      GRPC-Web
    • 2
      Blash
    • 2
      Lightweight
    • 2
      Fast and easy to set up
    • 2
      Slim
    • 2
      saltstack
    • 1
      Virtual hosting
    • 1
      Narrow focus. Easy to configure. Fast
    • 1
      Along with Redis Cache its the Most superior
    • 1
      Ingress controller
    CONS OF NGINX
    • 10
      Advanced features require subscription

    related NGINX posts

    Simon Reymann
    Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 9.3M views

    Our whole DevOps stack consists of the following tools:

    • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
    • Respectively Git as revision control system
    • SourceTree as Git GUI
    • Visual Studio Code as IDE
    • CircleCI for continuous integration (automatize development process)
    • Prettier / TSLint / ESLint as code linter
    • SonarQube as quality gate
    • Docker as container management (incl. Docker Compose for multi-container application management)
    • VirtualBox for operating system simulation tests
    • Kubernetes as cluster management for docker containers
    • Heroku for deploying in test environments
    • nginx as web server (preferably used as facade server in production environment)
    • SSLMate (using OpenSSL) for certificate management
    • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
    • PostgreSQL as preferred database system
    • Redis as preferred in-memory database/store (great for caching)

    The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

    • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
    • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
    • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
    • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
    • Scalability: All-in-one framework for distributed systems.
    • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
    See more
    John-Daniel Trask
    Co-founder & CEO at Raygun · | 19 upvotes · 256.7K views

    We chose AWS because, at the time, it was really the only cloud provider to choose from.

    We tend to use their basic building blocks (EC2, ELB, Amazon S3, Amazon RDS) rather than vendor specific components like databases and queuing. We deliberately decided to do this to ensure we could provide multi-cloud support or potentially move to another cloud provider if the offering was better for our customers.

    We’ve utilized c3.large nodes for both the Node.js deployment and then for the .NET Core deployment. Both sit as backends behind an nginx instance and are managed using scaling groups in Amazon EC2 sitting behind a standard AWS Elastic Load Balancing (ELB).

    While we’re satisfied with AWS, we do review our decision each year and have looked at Azure and Google Cloud offerings.

    #CloudHosting #WebServers #CloudStorage #LoadBalancerReverseProxy

    See more
    Spring Boot logo

    Spring Boot

    25.4K
    23.1K
    1K
    Create Spring-powered, production-grade applications and services with absolute minimum fuss
    25.4K
    23.1K
    + 1
    1K
    PROS OF SPRING BOOT
    • 149
      Powerful and handy
    • 134
      Easy setup
    • 128
      Java
    • 90
      Spring
    • 85
      Fast
    • 46
      Extensible
    • 37
      Lots of "off the shelf" functionalities
    • 32
      Cloud Solid
    • 26
      Caches well
    • 24
      Productive
    • 24
      Many receipes around for obscure features
    • 23
      Modular
    • 23
      Integrations with most other Java frameworks
    • 22
      Spring ecosystem is great
    • 21
      Auto-configuration
    • 21
      Fast Performance With Microservices
    • 18
      Community
    • 17
      Easy setup, Community Support, Solid for ERP apps
    • 15
      One-stop shop
    • 14
      Easy to parallelize
    • 14
      Cross-platform
    • 13
      Easy setup, good for build erp systems, well documented
    • 13
      Powerful 3rd party libraries and frameworks
    • 12
      Easy setup, Git Integration
    • 5
      It's so easier to start a project on spring
    • 4
      Kotlin
    • 1
      Microservice and Reactive Programming
    • 1
      The ability to integrate with the open source ecosystem
    CONS OF SPRING BOOT
    • 23
      Heavy weight
    • 18
      Annotation ceremony
    • 13
      Java
    • 11
      Many config files needed
    • 5
      Reactive
    • 4
      Excellent tools for cloud hosting, since 5.x
    • 1
      Java 😒😒

    related Spring Boot posts

    Praveen Mooli
    Engineering Manager at Taylor and Francis · | 18 upvotes · 3.8M views

    We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

    To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

    To build #Webapps we decided to use Angular 2 with RxJS

    #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

    See more

    Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

    Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

    See more
    Node.js logo

    Node.js

    184.7K
    156.8K
    8.5K
    A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications
    184.7K
    156.8K
    + 1
    8.5K
    PROS OF NODE.JS
    • 1.4K
      Npm
    • 1.3K
      Javascript
    • 1.1K
      Great libraries
    • 1K
      High-performance
    • 805
      Open source
    • 486
      Great for apis
    • 477
      Asynchronous
    • 423
      Great community
    • 390
      Great for realtime apps
    • 296
      Great for command line utilities
    • 84
      Websockets
    • 83
      Node Modules
    • 69
      Uber Simple
    • 59
      Great modularity
    • 58
      Allows us to reuse code in the frontend
    • 42
      Easy to start
    • 35
      Great for Data Streaming
    • 32
      Realtime
    • 28
      Awesome
    • 25
      Non blocking IO
    • 18
      Can be used as a proxy
    • 17
      High performance, open source, scalable
    • 16
      Non-blocking and modular
    • 15
      Easy and Fun
    • 14
      Easy and powerful
    • 13
      Future of BackEnd
    • 13
      Same lang as AngularJS
    • 12
      Fullstack
    • 11
      Fast
    • 10
      Scalability
    • 10
      Cross platform
    • 9
      Simple
    • 8
      Mean Stack
    • 7
      Great for webapps
    • 7
      Easy concurrency
    • 6
      Typescript
    • 6
      Fast, simple code and async
    • 6
      React
    • 6
      Friendly
    • 5
      Control everything
    • 5
      Its amazingly fast and scalable
    • 5
      Easy to use and fast and goes well with JSONdb's
    • 5
      Scalable
    • 5
      Great speed
    • 5
      Fast development
    • 4
      It's fast
    • 4
      Easy to use
    • 4
      Isomorphic coolness
    • 3
      Great community
    • 3
      Not Python
    • 3
      Sooper easy for the Backend connectivity
    • 3
      TypeScript Support
    • 3
      Blazing fast
    • 3
      Performant and fast prototyping
    • 3
      Easy to learn
    • 3
      Easy
    • 3
      Scales, fast, simple, great community, npm, express
    • 3
      One language, end-to-end
    • 3
      Less boilerplate code
    • 2
      Npm i ape-updating
    • 2
      Event Driven
    • 2
      Lovely
    • 1
      Creat for apis
    • 0
      Node
    CONS OF NODE.JS
    • 46
      Bound to a single CPU
    • 45
      New framework every day
    • 40
      Lots of terrible examples on the internet
    • 33
      Asynchronous programming is the worst
    • 24
      Callback
    • 19
      Javascript
    • 11
      Dependency based on GitHub
    • 11
      Dependency hell
    • 10
      Low computational power
    • 7
      Can block whole server easily
    • 7
      Callback functions may not fire on expected sequence
    • 7
      Very very Slow
    • 4
      Breaking updates
    • 4
      Unstable
    • 3
      No standard approach
    • 3
      Unneeded over complication
    • 1
      Can't read server session
    • 1
      Bad transitive dependency management

    related Node.js posts

    Shared insights
    on
    Node.jsNode.jsGraphQLGraphQLMongoDBMongoDB

    I just finished the very first version of my new hobby project: #MovieGeeks. It is a minimalist online movie catalog for you to save the movies you want to see and for rating the movies you already saw. This is just the beginning as I am planning to add more features on the lines of sharing and discovery

    For the #BackEnd I decided to use Node.js , GraphQL and MongoDB:

    1. Node.js has a huge community so it will always be a safe choice in terms of libraries and finding solutions to problems you may have

    2. GraphQL because I needed to improve my skills with it and because I was never comfortable with the usual REST approach. I believe GraphQL is a better option as it feels more natural to write apis, it improves the development velocity, by definition it fixes the over-fetching and under-fetching problem that is so common on REST apis, and on top of that, the community is getting bigger and bigger.

    3. MongoDB was my choice for the database as I already have a lot of experience working on it and because, despite of some bad reputation it has acquired in the last months, I still believe it is a powerful database for at least a very long list of use cases such as the one I needed for my website

    See more
    Nick Rockwell
    SVP, Engineering at Fastly · | 46 upvotes · 3.4M views

    When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

    So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

    React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

    Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

    See more