When comparing Koa vs Bottle, the Slant community recommends Bottle for most people. In the question“What are the best backend web frameworks?” Bottle is ranked 20th while Koa is ranked 33rd. The most important reason people chose Bottle is:
Being a small one file distribution it includes almost every vital thing you need to support little websites (routing, templating). Everything else can be implemented using plugins.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Generator support from ground up
Using generators (a bleeding edge feature, even for Node.js) would clean up your code from the mess caused by all those callbacks; making your code more manageable.
Pro Extremely lightweight
Koa is very lightweight with just 550 lines of code.
Pro async/await keywords are supported and has transcended beyond generator functions
Generators functions are of course a huge plus, but at the time Koa team has transcended generations functions and shifted towards async/await style programming. It has made the Koa best framework available in the market.
Pro Development team has a proven track record
Koa is developed by the team behind a widely used node.js framework (express.js).
Pro Built for ES6
Pro Flexible
Being a small one file distribution it includes almost every vital thing you need to support little websites (routing, templating). Everything else can be implemented using plugins.
Pro Single-file distribution
Bottle works around the one-file approach, everything is done in a bottle.py
file. This means that it's extremely easy to share and upload your application since it practically is just one python file.
Pro No need to install
It is so little there's no need to install, it is included in the standard libs python.
Pro Async, *let friendly
Using it with gevent is a breeze. It's a WSGI app so it's easy to make it work with anything.
Pro Truly magnificent
Cons
Con Community is relatively small
Con Not compatible with express style middleware
Koa uses generators which are not compatible with any other type of Node.js framework middleware.
Con Has no routes separated by HTTP method or URL pattern
Con Wrong Middle ware, security issue
Con Small community. Difficult to find online docs and examples
Con Very hard to develop projects that are not smaller than 1000 lines
While Bottle is a great framework for building small applications (generally less than 1000 lines of code), it starts getting very hard to manage your application if you want to go even a bit larger than that.
The fact that it follows a single-file distribution model and that it's missing something like Flask's blueprints only make this problem worse.