Alternatives to asyncio logo

Alternatives to asyncio

Flask, Celery, gevent, Node.js, and Tornado are the most popular alternatives and competitors to asyncio.
114
13

What is asyncio and what are its top alternatives?

This module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives.
asyncio is a tool in the Microframeworks (Backend) category of a tech stack.

Top Alternatives to asyncio

  • Flask
    Flask

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

  • Celery
    Celery

    Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. ...

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

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

  • Tornado
    Tornado

    By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user. ...

  • Twisted
    Twisted

    Twisted is an event-driven networking engine written in Python and licensed under the open source ​MIT license. Twisted runs on Python 2 and an ever growing subset also works with Python 3. Twisted also supports many common network protocols, including SMTP, POP3, IMAP, SSHv2, and DNS. ...

  • AIOHTTP
    AIOHTTP

    It is an Async http client/server framework. It supports both client and server Web-Sockets out-of-the-box and avoids Callback. It provides Web-server with middlewares and pluggable routing. ...

  • JavaScript
    JavaScript

    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles. ...

asyncio alternatives & related posts

Flask logo

Flask

19K
16K
66
A microframework for Python based on Werkzeug, Jinja 2 and good intentions
19K
16K
+ 1
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
Celery logo

Celery

1.6K
1.6K
280
Distributed task queue
1.6K
1.6K
+ 1
280
PROS OF CELERY
  • 99
    Task queue
  • 63
    Python integration
  • 40
    Django integration
  • 30
    Scheduled Task
  • 19
    Publish/subsribe
  • 8
    Various backend broker
  • 6
    Easy to use
  • 5
    Great community
  • 5
    Workflow
  • 4
    Free
  • 1
    Dynamic
CONS OF CELERY
  • 4
    Sometimes loses tasks
  • 1
    Depends on broker

related Celery posts

James Cunningham
Operations Engineer at Sentry · | 21 upvotes · 361.9K views

Sentry started as (and remains) an open-source project, growing out of an error logging tool built in 2008. That original build nine years ago was Django and Celery (Python’s asynchronous task codebase), with PostgreSQL as the database and Redis as the power behind Celery.

We displayed a truly shrewd notion of branding even then, giving the project a catchy name that companies the world over remain jealous of to this day: django-db-log. For the longest time, Sentry’s subtitle on GitHub was “A simple Django app, built with love.” A slightly more accurate description probably would have included Starcraft and Soylent alongside love; regardless, this captured what Sentry was all about.

#MessageQueue #InMemoryDatabases

See more
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 1.8M views
Shared insights
on
CeleryCeleryRabbitMQRabbitMQ
at

As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

#MessageQueue

See more
gevent logo

gevent

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

    related gevent posts

    Node.js logo

    Node.js

    188.6K
    160.2K
    8.5K
    A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications
    188.6K
    160.2K
    + 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
    • 424
      Great community
    • 390
      Great for realtime apps
    • 296
      Great for command line utilities
    • 85
      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 hell
    • 11
      Dependency based on GitHub
    • 10
      Low computational power
    • 7
      Very very Slow
    • 7
      Can block whole server easily
    • 7
      Callback functions may not fire on expected sequence
    • 4
      Breaking updates
    • 4
      Unstable
    • 3
      Unneeded over complication
    • 3
      No standard approach
    • 1
      Bad transitive dependency management
    • 1
      Can't read server session

    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 · 4.1M 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
    Tornado logo

    Tornado

    445
    408
    167
    A Python web framework and asynchronous networking library, originally developed at FriendFeed
    445
    408
    + 1
    167
    PROS OF TORNADO
    • 37
      Open source
    • 31
      So fast
    • 27
      Great for microservices architecture
    • 20
      Websockets
    • 17
      Simple
    • 14
      Asynchronous
    • 11
      Python
    • 7
      Lightweight
    • 3
      Handles well persistent connexions
    CONS OF TORNADO
    • 2
      Event loop is complicated

    related Tornado posts

    Dmitry Mukhin

    The 350M API requests we handle daily include many processing tasks such as image enhancements, resizing, filtering, face recognition, and GIF to video conversions.

    Tornado is the one we currently use and aiohttp is the one we intend to implement in production in the near future. Both tools support handling huge amounts of requests but aiohttp is preferable as it uses asyncio which is Python-native. Since Python is in the heart of our service, we initially used PIL followed by Pillow. We kind of still do. When we figured resizing was the most taxing processing operation, Alex, our engineer, created the fork named Pillow-SIMD and implemented a good number of optimizations into it to make it 15 times faster than ImageMagick

    Thanks to the optimizations, Uploadcare now needs six times fewer servers to process images. Here, by servers I also mean separate Amazon EC2 instances handling processing and the first layer of caching. The processing instances are also paired with AWS Elastic Load Balancing (ELB) which helps ingest files to the CDN.

    See more

    Around the time of their Series A, Pinterest’s stack included Python and Django, with Tornado and Node.js as web servers. Memcached / Membase and Redis handled caching, with RabbitMQ handling queueing. Nginx, HAproxy and Varnish managed static-delivery and load-balancing, with persistent data storage handled by MySQL.

    See more
    Twisted logo

    Twisted

    73
    89
    10
    Event-driven networking engine written in Python
    73
    89
    + 1
    10
    PROS OF TWISTED
    • 5
      Easy-to-understand concurrency
    • 3
      Twisted prevails
    • 1
      It works
    • 1
      Solid, flexible, powerful
    CONS OF TWISTED
      Be the first to leave a con

      related Twisted posts

      AIOHTTP logo

      AIOHTTP

      123
      142
      0
      Asynchronous HTTP Client/Server for asyncio and Python
      123
      142
      + 1
      0
      PROS OF AIOHTTP
        Be the first to leave a pro
        CONS OF AIOHTTP
          Be the first to leave a con

          related AIOHTTP posts

          Jelena Dedovic

          Investigating Tortoise ORM and GINO ORM...

          I need to introduce some async ORM with the current stack: Tornado with asyncio loop, AIOHTTP, with PostgreSQL and MSSQL. This project revolves heavily around realtime and due to the realtime requirements, blocking during database access is not acceptable.

          Considering that these ORMs are both young projects, I wondered if anybody had some experience with similar stack and these async ORMs?

          See more
          JavaScript logo

          JavaScript

          360.8K
          274.5K
          8.1K
          Lightweight, interpreted, object-oriented language with first-class functions
          360.8K
          274.5K
          + 1
          8.1K
          PROS OF JAVASCRIPT
          • 1.7K
            Can be used on frontend/backend
          • 1.5K
            It's everywhere
          • 1.2K
            Lots of great frameworks
          • 898
            Fast
          • 746
            Light weight
          • 425
            Flexible
          • 392
            You can't get a device today that doesn't run js
          • 286
            Non-blocking i/o
          • 237
            Ubiquitousness
          • 191
            Expressive
          • 55
            Extended functionality to web pages
          • 49
            Relatively easy language
          • 46
            Executed on the client side
          • 30
            Relatively fast to the end user
          • 25
            Pure Javascript
          • 21
            Functional programming
          • 15
            Async
          • 13
            Full-stack
          • 12
            Future Language of The Web
          • 12
            Setup is easy
          • 12
            Its everywhere
          • 11
            Because I love functions
          • 11
            JavaScript is the New PHP
          • 10
            Like it or not, JS is part of the web standard
          • 9
            Easy
          • 9
            Can be used in backend, frontend and DB
          • 9
            Expansive community
          • 9
            Everyone use it
          • 8
            Easy to hire developers
          • 8
            Most Popular Language in the World
          • 8
            For the good parts
          • 8
            Can be used both as frontend and backend as well
          • 8
            No need to use PHP
          • 8
            Powerful
          • 7
            Evolution of C
          • 7
            Its fun and fast
          • 7
            It's fun
          • 7
            Nice
          • 7
            Versitile
          • 7
            Hard not to use
          • 7
            Popularized Class-Less Architecture & Lambdas
          • 7
            Agile, packages simple to use
          • 7
            Supports lambdas and closures
          • 7
            Love-hate relationship
          • 7
            Photoshop has 3 JS runtimes built in
          • 6
            1.6K Can be used on frontend/backend
          • 6
            Client side JS uses the visitors CPU to save Server Res
          • 6
            It let's me use Babel & Typescript
          • 6
            Easy to make something
          • 6
            Can be used on frontend/backend/Mobile/create PRO Ui
          • 5
            Client processing
          • 5
            What to add
          • 5
            Everywhere
          • 5
            Scope manipulation
          • 5
            Function expressions are useful for callbacks
          • 5
            Stockholm Syndrome
          • 5
            Promise relationship
          • 5
            Clojurescript
          • 4
            Only Programming language on browser
          • 4
            Because it is so simple and lightweight
          • 1
            Easy to learn and test
          • 1
            Easy to understand
          • 1
            Not the best
          • 1
            Subskill #4
          • 1
            Hard to learn
          • 1
            Test2
          • 1
            Test
          • 1
            Easy to learn
          • 0
            Hard 彤
          CONS OF JAVASCRIPT
          • 22
            A constant moving target, too much churn
          • 20
            Horribly inconsistent
          • 15
            Javascript is the New PHP
          • 9
            No ability to monitor memory utilitization
          • 8
            Shows Zero output in case of ANY error
          • 7
            Thinks strange results are better than errors
          • 6
            Can be ugly
          • 3
            No GitHub
          • 2
            Slow
          • 0
            HORRIBLE DOCUMENTS, faulty code, repo has bugs

          related JavaScript posts

          Zach Holman

          Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.

          But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.

          But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.

          Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.

          See more
          Conor Myhrvold
          Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 12.7M views

          How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

          Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

          Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

          https://eng.uber.com/distributed-tracing/

          (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

          Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

          See more