Alternatives to AIOHTTP logo

Alternatives to AIOHTTP

GraphQL, Tornado, Sanic, Flask, and Node.js are the most popular alternatives and competitors to AIOHTTP.
124
141
+ 1
0

What is AIOHTTP and what are its top alternatives?

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.
AIOHTTP is a tool in the Microframeworks (Backend) category of a tech stack.
AIOHTTP is an open source tool with 14.6K GitHub stars and 2K GitHub forks. Here’s a link to AIOHTTP's open source repository on GitHub

Top Alternatives to AIOHTTP

  • GraphQL
    GraphQL

    GraphQL is a data query language and runtime designed and used at Facebook to request and deliver data to mobile and web apps since 2012. ...

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

  • Sanic
    Sanic

    Sanic is a Flask-like Python 3.5+ web server that's written to go fast. It's based on the work done by the amazing folks at magicstack. On top of being Flask-like, Sanic supports async request handlers. ...

  • Flask
    Flask

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

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

  • asyncio
    asyncio

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

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

  • Django
    Django

    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. ...

AIOHTTP alternatives & related posts

GraphQL logo

GraphQL

33.1K
27.2K
310
A data query language and runtime
33.1K
27.2K
+ 1
310
PROS OF GRAPHQL
  • 75
    Schemas defined by the requests made by the user
  • 63
    Will replace RESTful interfaces
  • 62
    The future of API's
  • 49
    The future of databases
  • 13
    Self-documenting
  • 12
    Get many resources in a single request
  • 6
    Query Language
  • 6
    Ask for what you need, get exactly that
  • 3
    Fetch different resources in one request
  • 3
    Type system
  • 3
    Evolve your API without versions
  • 2
    Ease of client creation
  • 2
    GraphiQL
  • 2
    Easy setup
  • 1
    "Open" document
  • 1
    Fast prototyping
  • 1
    Supports subscription
  • 1
    Standard
  • 1
    Good for apps that query at build time. (SSR/Gatsby)
  • 1
    1. Describe your data
  • 1
    Better versioning
  • 1
    Backed by Facebook
  • 1
    Easy to learn
CONS OF GRAPHQL
  • 4
    Hard to migrate from GraphQL to another technology
  • 4
    More code to type.
  • 2
    Takes longer to build compared to schemaless.
  • 1
    No support for caching
  • 1
    All the pros sound like NFT pitches
  • 1
    No support for streaming
  • 1
    Works just like any other API at runtime
  • 1
    N+1 fetch problem
  • 1
    No built in security

related GraphQL 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.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
Tornado logo

Tornado

436
407
167
A Python web framework and asynchronous networking library, originally developed at FriendFeed
436
407
+ 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
Sanic logo

Sanic

94
132
10
Python 3.5+ web server that's written to go fast
94
132
+ 1
10
PROS OF SANIC
  • 5
    Asyncio
  • 2
    Fast
  • 2
    Easy to use server
  • 1
    Websockets
CONS OF SANIC
    Be the first to leave a con

    related Sanic posts

    Flask logo

    Flask

    18.7K
    15.8K
    82
    A microframework for Python based on Werkzeug, Jinja 2 and good intentions
    18.7K
    15.8K
    + 1
    82
    PROS OF FLASK
    • 14
      Flexibilty
    • 10
      For it flexibility
    • 9
      Flexibilty and easy to use
    • 8
      Flask
    • 7
      User friendly
    • 6
      Secured
    • 5
      Unopinionated
    • 3
      Orm
    • 2
      Secure
    • 1
      Beautiful code
    • 1
      Easy to get started
    • 1
      Easy to develop and maintain applications
    • 1
      Not JS
    • 1
      Easy to use
    • 1
      Documentation
    • 1
      Python
    • 1
      Minimal
    • 1
      Lightweight
    • 1
      Easy to setup and get it going
    • 1
      Perfect for small to large projects with superb docs.
    • 1
      Easy to integrate
    • 1
      Speed
    • 1
      Get started quickly
    • 1
      Customizable
    • 1
      Simple to use
    • 1
      Powerful
    • 1
      Rapid development
    • 0
      Open source
    • 0
      Well designed
    • 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 · | 45 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
    Node.js logo

    Node.js

    183.9K
    156.1K
    8.5K
    A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications
    183.9K
    156.1K
    + 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.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
    asyncio logo

    asyncio

    111
    157
    13
    Asynchronous I/O, event loop, coroutines and tasks
    111
    157
    + 1
    13
    PROS OF ASYNCIO
    • 4
      Cooperative Multitasking
    • 4
      I/O Wait
    • 3
      Network Call
    • 2
      I/O bound computation
    CONS OF ASYNCIO
      Be the first to leave a con

      related asyncio posts

      I love Python and JavaScript . You can do the same JavaScript async operations in Python by using asyncio. This is particularly useful when you need to do socket programming in Python. With streaming sockets, data can be sent or received at any time. In case your Python program is in the middle of executing some code, other threads can handle the new socket data. Libraries like asyncio implement multiple threads, so your Python program can work in an asynchronous fashion. PubNub makes bi-directional data streaming between devices even easier.

      See more
      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
      Twisted logo

      Twisted

      71
      88
      10
      Event-driven networking engine written in Python
      71
      88
      + 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

        Django logo

        Django

        36.9K
        33.4K
        4.2K
        The Web framework for perfectionists with deadlines
        36.9K
        33.4K
        + 1
        4.2K
        PROS OF DJANGO
        • 670
          Rapid development
        • 487
          Open source
        • 424
          Great community
        • 379
          Easy to learn
        • 276
          Mvc
        • 232
          Beautiful code
        • 223
          Elegant
        • 206
          Free
        • 203
          Great packages
        • 194
          Great libraries
        • 79
          Comes with auth and crud admin panel
        • 79
          Restful
        • 78
          Powerful
        • 75
          Great documentation
        • 71
          Great for web
        • 57
          Python
        • 43
          Great orm
        • 41
          Great for api
        • 32
          All included
        • 29
          Fast
        • 25
          Web Apps
        • 23
          Easy setup
        • 23
          Clean
        • 21
          Used by top startups
        • 19
          Sexy
        • 19
          ORM
        • 15
          The Django community
        • 14
          Allows for very rapid development with great libraries
        • 14
          Convention over configuration
        • 11
          King of backend world
        • 10
          Full stack
        • 10
          Great MVC and templating engine
        • 8
          Fast prototyping
        • 8
          Mvt
        • 7
          Easy to develop end to end AI Models
        • 7
          Batteries included
        • 7
          Its elegant and practical
        • 6
          Have not found anything that it can't do
        • 6
          Very quick to get something up and running
        • 6
          Cross-Platform
        • 5
          Easy Structure , useful inbuilt library
        • 5
          Great peformance
        • 5
          Zero code burden to change databases
        • 5
          Python community
        • 4
          Map
        • 4
          Just the right level of abstraction
        • 4
          Easy to change database manager
        • 4
          Modular
        • 4
          Many libraries
        • 4
          Easy to use
        • 4
          Easy
        • 4
          Full-Text Search
        • 3
          Scaffold
        • 1
          Fastapi
        • 1
          Built in common security
        • 1
          Scalable
        • 1
          Great default admin panel
        • 1
          Node js
        • 1
          Gigante ta
        • 0
          Rails
        CONS OF DJANGO
        • 26
          Underpowered templating
        • 22
          Autoreload restarts whole server
        • 22
          Underpowered ORM
        • 15
          URL dispatcher ignores HTTP method
        • 10
          Internal subcomponents coupling
        • 8
          Not nodejs
        • 8
          Configuration hell
        • 7
          Admin
        • 5
          Not as clean and nice documentation like Laravel
        • 4
          Python
        • 3
          Not typed
        • 3
          Bloated admin panel included
        • 2
          Overwhelming folder structure
        • 2
          InEffective Multithreading
        • 1
          Not type safe

        related Django posts

        Dmitry Mukhin
        Engineer at Uploadcare · | 25 upvotes · 2.4M views

        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.

        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