Alternatives to Gunicorn logo

Alternatives to Gunicorn

uWSGI, NGINX, Flask, Waitress, and gevent are the most popular alternatives and competitors to Gunicorn.
1.1K
903
+ 1
78

What is Gunicorn and what are its top alternatives?

Gunicorn is a pre-fork worker model ported from Ruby's Unicorn project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resources, and fairly speedy.
Gunicorn is a tool in the Web Servers category of a tech stack.
Gunicorn is an open source tool with 9.9K GitHub stars and 1.8K GitHub forks. Here’s a link to Gunicorn's open source repository on GitHub

Top Alternatives to Gunicorn

  • uWSGI
    uWSGI

    The uWSGI project aims at developing a full stack for building hosting services. ...

  • 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. ...

  • Flask
    Flask

    Flask is intended for getting started very quickly and was developed with best intentions in mind. ...

  • Waitress
    Waitress

    It is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except ones which live in the Python standard library. It runs on CPython on Unix and Windows under Python 2.7+ and Python 3.4+. It is also known to run on PyPy 1.6.0 on UNIX. ...

  • gevent
    gevent

    It is a coroutine -based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev or libuv event loop. ...

  • Apache HTTP Server
    Apache HTTP Server

    The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server. Originally designed as a replacement for the NCSA HTTP Server, it has grown to be the most popular web server on the Internet. ...

  • Amazon EC2
    Amazon EC2

    It is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. ...

  • Firebase
    Firebase

    Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds. ...

Gunicorn alternatives & related posts

uWSGI logo

uWSGI

256
12
uWSGI application server container
256
12
PROS OF UWSGI
  • 6
    Faster
  • 4
    Simple
  • 2
    Powerful
CONS OF UWSGI
    Be the first to leave a con

    related uWSGI posts

    I find I really like using GitHub because its issue tracker integrates really well into my project flow and the projects feature allows me to organize different efforts into boards. The automation features allow my issues to automatically progress through some states on the boards when I merge pull requests.

    My Python / Django app is deployed on Heroku with PostgreSQL database and uWSGI webserver.

    See more

    I use Gunicorn because does one thing - it’s a WSGI HTTP server - and it does it well. Deploy it quickly and easily, and let the rest of your stack do what the rest of your stack does well, wherever that may be.

    uWSGI “aims at developing a full stack for building hosting services” - if that’s a thing you need then ok, but I like the principle of doing one thing well, and I deploy to platforms like Heroku and AWS Elastic Beanstalk where the rest of the “hosting service” is provided and managed for me.

    See more
    NGINX logo

    NGINX

    113.6K
    5.5K
    A high performance free open source web server powering busiest sites on the Internet.
    113.6K
    5.5K
    PROS OF NGINX
    • 1.4K
      High-performance http server
    • 894
      Performance
    • 730
      Easy to configure
    • 607
      Open source
    • 530
      Load balancer
    • 289
      Free
    • 288
      Scalability
    • 226
      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
      Supports http/2
    • 7
      The best of them
    • 5
      Great Community
    • 5
      Lots of Modules
    • 5
      Enterprise version
    • 4
      High perfomance proxy server
    • 3
      Embedded Lua scripting
    • 3
      Streaming media delivery
    • 3
      Streaming media
    • 3
      Reversy Proxy
    • 2
      Blash
    • 2
      GRPC-Web
    • 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 · 11.8M 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 · 491.6K 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
    Flask logo

    Flask

    19.1K
    66
    A microframework for Python based on Werkzeug, Jinja 2 and good intentions
    19.1K
    66
    PROS OF FLASK
    • 10
      For it flexibility
    • 9
      Flexibilty and easy to use
    • 8
      Flask
    • 7
      User friendly
    • 6
      Secured
    • 5
      Unopinionated
    • 2
      Secure
    • 1
      Customizable
    • 1
      Simple to use
    • 1
      Powerful
    • 1
      Rapid development
    • 1
      Beautiful code
    • 1
      Easy to develop and maintain applications
    • 1
      Easy to setup and get it going
    • 1
      Easy to use
    • 1
      Documentation
    • 1
      Python
    • 1
      Minimal
    • 1
      Lightweight
    • 1
      Easy to get started
    • 1
      Orm
    • 1
      Not JS
    • 1
      Perfect for small to large projects with superb docs.
    • 1
      Easy to integrate
    • 1
      Speed
    • 1
      Get started quickly
    • 0
      Open source
    • 0
      Well designed
    • 0
      Flexibilty
    • 0
      Productive
    • 0
      Awesome
    • 0
      Expressive
    • 0
      Love it
    CONS OF FLASK
    • 10
      Not JS
    • 7
      Context
    • 5
      Not fast
    • 1
      Don't has many module as in spring

    related Flask posts

    James Man
    Software Engineer at Pinterest · | 47 upvotes · 2.8M views
    Shared insights
    on
    FlaskFlaskReactReact
    at

    One of our top priorities at Pinterest is fostering a safe and trustworthy experience for all Pinners. As Pinterest’s user base and ads business grow, the review volume has been increasing exponentially, and more content types require moderation support. To solve greater engineering and operational challenges at scale, we needed a highly-reliable and performant system to detect, report, evaluate, and act on abusive content and users and so we created Pinqueue.

    Pinqueue-3.0 serves as a generic platform for content moderation and human labeling. Under the hood, Pinqueue3.0 is a Flask + React app powered by Pinterest’s very own Gestalt UI framework. On the backend, Pinqueue3.0 heavily relies on PinLater, a Pinterest-built reliable asynchronous job execution system, to handle the requests for enqueueing and action-taking. Using PinLater has significantly strengthened Pinqueue3.0’s overall infra with its capability of processing a massive load of events with configurable retry policies.

    Hundreds of millions of people around the world use Pinterest to discover and do what they love, and our job is to protect them from abusive and harmful content. We’re committed to providing an inspirational yet safe experience to all Pinners. Solving trust & safety problems is a joint effort requiring expertise across multiple domains. Pinqueue3.0 not only plays a critical role in responsively taking down unsafe content, it also has become an enabler for future ML/automation initiatives by providing high-quality human labels. Going forward, we will continue to improve the review experience, measure review quality and collaborate with our machine learning teams to solve content moderation beyond manual reviews at an even larger scale.

    See more

    Hey, so I developed a basic application with Python. But to use it, you need a python interpreter. I want to add a GUI to make it more appealing. What should I choose to develop a GUI? I have very basic skills in front end development (CSS, JavaScript). I am fluent in python. I'm looking for a tool that is easy to use and doesn't require too much code knowledge. I have recently tried out Flask, but it is kinda complicated. Should I stick with it, move to Django, or is there another nice framework to use?

    See more
    Waitress logo

    Waitress

    16
    7
    A production-quality pure-Python WSGI server
    16
    7
    PROS OF WAITRESS
    • 2
      Runs on Windows
    • 1
      Cross Platform
    • 1
      Fast
    • 1
      Light
    • 1
      Reliable
    • 1
      Easy setup
    CONS OF WAITRESS
      Be the first to leave a con

      related Waitress posts

      gevent logo

      gevent

      189
      0
      Coroutine network library for Python
      189
      0
      PROS OF GEVENT
        Be the first to leave a pro
        CONS OF GEVENT
        • 1
          Not native

        related gevent posts

        Apache HTTP Server logo

        Apache HTTP Server

        64.6K
        1.4K
        Open-source HTTP server for modern operating systems including UNIX and Windows
        64.6K
        1.4K
        PROS OF APACHE HTTP SERVER
        • 479
          Web server
        • 305
          Most widely-used web server
        • 217
          Virtual hosting
        • 148
          Fast
        • 138
          Ssl support
        • 44
          Since 1996
        • 28
          Asynchronous
        • 5
          Robust
        • 4
          Proven over many years
        • 2
          Mature
        • 2
          Perfomance
        • 1
          Perfect Support
        • 0
          Many available modules
        • 0
          Many available modules
        CONS OF APACHE HTTP SERVER
        • 4
          Hard to set up

        related Apache HTTP Server posts

        Nick Rockwell
        SVP, Engineering at Fastly · | 46 upvotes · 4.2M 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
        Tim Abbott
        Shared insights
        on
        NGINXNGINXApache HTTP ServerApache HTTP Server
        at

        We've been happy with nginx as part of our stack. As an open source web application that folks install on-premise, the configuration system for the webserver is pretty important to us. I have a few complaints (e.g. the configuration syntax for conditionals is a pain), but overall we've found it pretty easy to build a configurable set of options (see link) for how to run Zulip on nginx, both directly and with a remote reverse proxy in front of it, with a minimum of code duplication.

        Certainly I've been a lot happier with it than I was working with Apache HTTP Server in past projects.

        See more
        Amazon EC2 logo

        Amazon EC2

        48.4K
        2.5K
        Scalable, pay-as-you-go compute capacity in the cloud
        48.4K
        2.5K
        PROS OF AMAZON EC2
        • 647
          Quick and reliable cloud servers
        • 515
          Scalability
        • 393
          Easy management
        • 277
          Low cost
        • 271
          Auto-scaling
        • 89
          Market leader
        • 80
          Backed by amazon
        • 79
          Reliable
        • 67
          Free tier
        • 58
          Easy management, scalability
        • 13
          Flexible
        • 10
          Easy to Start
        • 9
          Widely used
        • 9
          Web-scale
        • 9
          Elastic
        • 7
          Node.js API
        • 5
          Industry Standard
        • 4
          Lots of configuration options
        • 2
          GPU instances
        • 1
          Simpler to understand and learn
        • 1
          Extremely simple to use
        • 1
          Amazing for individuals
        • 1
          All the Open Source CLI tools you could want.
        CONS OF AMAZON EC2
        • 13
          Ui could use a lot of work
        • 6
          High learning curve when compared to PaaS
        • 3
          Extremely poor CPU performance

        related Amazon EC2 posts

        Ashish Singh
        Tech Lead, Big Data Platform at Pinterest · | 38 upvotes · 3.4M views

        To provide employees with the critical need of interactive querying, we’ve worked with Presto, an open-source distributed SQL query engine, over the years. Operating Presto at Pinterest’s scale has involved resolving quite a few challenges like, supporting deeply nested and huge thrift schemas, slow/ bad worker detection and remediation, auto-scaling cluster, graceful cluster shutdown and impersonation support for ldap authenticator.

        Our infrastructure is built on top of Amazon EC2 and we leverage Amazon S3 for storing our data. This separates compute and storage layers, and allows multiple compute clusters to share the S3 data.

        We have hundreds of petabytes of data and tens of thousands of Apache Hive tables. Our Presto clusters are comprised of a fleet of 450 r4.8xl EC2 instances. Presto clusters together have over 100 TBs of memory and 14K vcpu cores. Within Pinterest, we have close to more than 1,000 monthly active users (out of total 1,600+ Pinterest employees) using Presto, who run about 400K queries on these clusters per month.

        Each query submitted to Presto cluster is logged to a Kafka topic via Singer. Singer is a logging agent built at Pinterest and we talked about it in a previous post. Each query is logged when it is submitted and when it finishes. When a Presto cluster crashes, we will have query submitted events without corresponding query finished events. These events enable us to capture the effect of cluster crashes over time.

        Each Presto cluster at Pinterest has workers on a mix of dedicated AWS EC2 instances and Kubernetes pods. Kubernetes platform provides us with the capability to add and remove workers from a Presto cluster very quickly. The best-case latency on bringing up a new worker on Kubernetes is less than a minute. However, when the Kubernetes cluster itself is out of resources and needs to scale up, it can take up to ten minutes. Some other advantages of deploying on Kubernetes platform is that our Presto deployment becomes agnostic of cloud vendor, instance types, OS, etc.

        #BigData #AWS #DataScience #DataEngineering

        See more
        Simon Reymann
        Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 11.8M 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
        Firebase logo

        Firebase

        41.2K
        2K
        The Realtime App Platform
        41.2K
        2K
        PROS OF FIREBASE
        • 371
          Realtime backend made easy
        • 270
          Fast and responsive
        • 242
          Easy setup
        • 215
          Real-time
        • 191
          JSON
        • 134
          Free
        • 128
          Backed by google
        • 83
          Angular adaptor
        • 68
          Reliable
        • 36
          Great customer support
        • 32
          Great documentation
        • 25
          Real-time synchronization
        • 21
          Mobile friendly
        • 19
          Rapid prototyping
        • 14
          Great security
        • 12
          Automatic scaling
        • 11
          Freakingly awesome
        • 8
          Super fast development
        • 8
          Angularfire is an amazing addition!
        • 8
          Chat
        • 6
          Firebase hosting
        • 6
          Built in user auth/oauth
        • 6
          Awesome next-gen backend
        • 6
          Ios adaptor
        • 4
          Speed of light
        • 4
          Very easy to use
        • 3
          Great
        • 3
          It's made development super fast
        • 3
          Brilliant for startups
        • 2
          Free hosting
        • 2
          Cloud functions
        • 2
          JS Offline and Sync suport
        • 2
          Low battery consumption
        • 2
          .net
        • 2
          The concurrent updates create a great experience
        • 2
          Push notification
        • 2
          I can quickly create static web apps with no backend
        • 2
          Great all-round functionality
        • 2
          Free authentication solution
        • 1
          Easy Reactjs integration
        • 1
          Google's support
        • 1
          Free SSL
        • 1
          CDN & cache out of the box
        • 1
          Easy to use
        • 1
          Large
        • 1
          Faster workflow
        • 1
          Serverless
        • 1
          Good Free Limits
        • 1
          Simple and easy
        CONS OF FIREBASE
        • 31
          Can become expensive
        • 16
          No open source, you depend on external company
        • 15
          Scalability is not infinite
        • 9
          Not Flexible Enough
        • 7
          Cant filter queries
        • 3
          Very unstable server
        • 3
          No Relational Data
        • 2
          Too many errors
        • 2
          No offline sync

        related Firebase posts

        Stephen Gheysens
        Lead Solutions Engineer at Inscribe · | 14 upvotes · 1.8M views

        Hi Otensia! I'd definitely recommend using the skills you've already got and building with JavaScript is a smart way to go these days. Most platform services have JavaScript/Node SDKs or NPM packages, many serverless platforms support Node in case you need to write any backend logic, and JavaScript is incredibly popular - meaning it will be easy to hire for, should you ever need to.

        My advice would be "don't reinvent the wheel". If you already have a skill set that will work well to solve the problem at hand, and you don't need it for any other projects, don't spend the time jumping into a new language. If you're looking for an excuse to learn something new, it would be better to invest that time in learning a new platform/tool that compliments your knowledge of JavaScript. For this project, I might recommend using Netlify, Vercel, or Google Firebase to quickly and easily deploy your web app. If you need to add user authentication, there are great examples out there for Firebase Authentication, Auth0, or even Magic (a newcomer on the Auth scene, but very user friendly). All of these services work very well with a JavaScript-based application.

        See more
        Eugene Cheah

        For inboxkitten.com, an opensource disposable email service;

        We migrated our serverless workload from Cloud Functions for Firebase to CloudFlare workers, taking advantage of the lower cost and faster-performing edge computing of Cloudflare network. Made possible due to our extremely low CPU and RAM overhead of our serverless functions.

        If I were to summarize the limitation of Cloudflare (as oppose to firebase/gcp functions), it would be ...

        1. <5ms CPU time limit
        2. Incompatible with express.js
        3. one script limitation per domain

        Limitations our workload is able to conform with (YMMV)

        For hosting of static files, we migrated from Firebase to CommonsHost

        More details on the trade-off in between both serverless providers is in the article

        See more