What is uWSGI and what are its top alternatives?
Top Alternatives to uWSGI
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. ...
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. ...
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 is intended for getting started very quickly and was developed with best intentions in mind. ...
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. ...
It is a standard for an interface between .NET Web applications and Web servers. It is a community-owned open-source project. ...
- Xen Orchestra
It provides a web based UI for the management of XenServer installations without requiring any agent or extra software on your hosts nor VMs. ...
It is basically a platform for storing, sharing, and managing server access. But the most valuable part of it concerns the possibility to do an audit and to control the work performed on the server. Our platform can be integrated as an independent service in company infrastructure. It doesn’t change the way developers are used to working on the server, it changes the way they connect on it. All connections to servers are made through a single sign-on and private user access. All the actions performed on servers and in Werbot web interface are logged and recorded (screencasts). The server administrator can not only see what was done on the server by each user and when it was done but also can replay the whole working session in our player. The server audit is made much easier with Werbot. ...
uWSGI alternatives & related posts
- Easy setup30
related Gunicorn posts
Unlike our frontend, we chose Flask, a microframework, for our backend. We use it with Python 3 and Gunicorn.
One of the reasons was that I have significant experience with this framework. However, it also was a rather straightforward choice given that our backend almost only serves REST APIs, and that most of the work is talking to the database with SQLAlchemy .
We could have gone with something like Hug but it is kind of early. We might revisit that decision for new services later on.
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.
- Rapid development641
- Open source473
- Great community406
- Easy to learn357
- Beautiful code217
- Great packages194
- Great libraries182
- Comes with auth and crud admin panel67
- Great documentation64
- Great for web61
- Great orm38
- Great for api36
- All included27
- Web Apps22
- Used by top startups19
- Easy setup16
- Convention over configuration13
- Allows for very rapid development with great libraries9
- The Django community9
- Great MVC and templating engine7
- King of backend world7
- Its elegant and practical7
- Full stack6
- Fast prototyping6
- Have not found anything that it can't do6
- Batteries included5
- Very quick to get something up and running5
- Easy Structure , useful inbuilt library5
- Easy to develop end to end AI Models5
- Python community4
- Great peformance4
- Easy to use4
- Many libraries4
- Full-Text Search3
- Zero code burden to change databases3
- Just the right level of abstraction3
- Easy to change database manager2
- Node js1
- Underpowered templating25
- Autoreload restarts whole server21
- Underpowered ORM20
- URL dispatcher ignores HTTP method15
- Internal subcomponents coupling10
- Not nodejs7
- Configuration hell7
- Not as clean and nice documentation like Laravel5
- Bloated admin panel included3
- Not typed3
- Overwhelming folder structure2
- InEffective Multithreading2
related Django posts
Simple controls over complex technologies, as we put it, wouldn't be possible without neat UIs for our user areas including start page, dashboard, settings, and docs.
Initially, there was Django. Back in 2011, considering our Python-centric approach, that was the best choice. Later, we realized we needed to iterate on our website more quickly. And this led us to detaching Django from our front end. That was when we decided to build an SPA.
For building user interfaces, we're currently using React as it provided the fastest rendering back when we were building our toolkit. It’s worth mentioning Uploadcare is not a front-end-focused SPA: we aren’t running at high levels of complexity. If it were, we’d go with Ember.js.
However, there's a chance we will shift to the faster Preact, with its motto of using as little code as possible, and because it makes more use of browser APIs. One of our future tasks for our front end is to configure our Webpack bundler to split up the code for different site sections. For styles, we use PostCSS along with its plugins such as cssnano which minifies all the code.
All that allows us to provide a great user experience and quickly implement changes where they are needed with as little code as possible.
- High-performance http server1.4K
- Easy to configure727
- Open source606
- Load balancer529
- Web server223
- Easy setup135
- Content caching29
- Web Accelerator20
- Reverse Proxy7
- Supports http/26
- The best of them5
- Enterprise version4
- Lots of Modules4
- Great Community4
- Reversy Proxy3
- High perfomance proxy server3
- Streaming media3
- Embedded Lua scripting3
- Streaming media delivery3
- Fast and easy to set up2
- Narrow focus. Easy to configure. Fast1
- Ingress controller1
- Virtual hosting1
- Along with Redis Cache its the Most superior1
- Advanced features require subscription8
related NGINX posts
Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.
We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.
We switched to Traefik so we can use the REST API to dynamically configure subdomains and have the ability to redirect between multiple servers.
We still use nginx with a docker-compose to expose the traffic from our APIs and TCP microservices, but for managing routing to the internet Traefik does a much better job
The biggest win for naologic was the ability to set dynamic configurations without having to restart the server
- Open source146
- Easy to use66
- Easy to setup and get it going54
- Well designed53
- Easy to develop and maintain applications48
- Easy to get started45
- Beautiful code18
- Rapid development17
- Simple to use11
- Get started quickly11
- Love it11
- Easy to integrate10
- Perfect for small to large projects with superb docs.9
- For it flexibility9
- Flexibilty and easy to use8
- User friendly6
- Not JS6
- Not JS10
- Not fast5
- Don't has many module as in spring1
related Flask posts
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.