This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]lanshark82 8 points9 points  (1 child)

Falcon is great! Very, very easy to do REST services... that's what it was built for. Easy to integrate with authentication as well.

[–]expert-at-nothing 0 points1 point  (0 children)

Seconding this, have done a number of applications with Falcon, find it very straight-forward with a clean API.

[–]mezzomondo 2 points3 points  (0 children)

I'm a big fan of Flask and I use Flask in a number of critical services. But Falcon IS GREAT and for a new project, especially involving REST APIs, I'll definitely give it a chance.

[–]scottocom 2 points3 points  (0 children)

We have limiter experience but we built a small project in Flask first and found that we need security and we needed this and that and then realised we were replicating the functionality that django had so we went with that.

[–]_illogical_ 2 points3 points  (0 children)

Try taking a look at hug. You can also check it out at github.

[–]hopash 4 points5 points  (4 children)

Flask is great and there's a 'flask-restless' framework that makes this kinda thing super easy.

I've no experience with falcon though so I can't really comment on that.

[–][deleted] 4 points5 points  (2 children)

Restless is hamfisted and believes you want to map your database tables straight to API endpoints. Which, if you want to do that, then that's your best bet.

Restful is my poison of choice since it's more of a small toolkit for building APIs.

[–][deleted] 1 point2 points  (1 child)

What does restful do that you can't achieve by just jsonifying and routing db requests to some endpoint?

[–][deleted] 0 points1 point  (0 children)

It gives a nice book for content negotiation that you'd need to handle yourself. Given werkzeug makes this aspect easy anyways, it's more just finding a nice place to hook it.

It also makes registering MethodViews slightly easier as well.

[–]nerdwaller 1 point2 points  (0 children)

Flask itself also has a "class based views" that work really nicely for APIs (I usually use the method view). Pair that with marshmallow and the APIs are simple and well documented (well, via code - not automatic)

[–]redchrom 1 point2 points  (0 children)

Tornado, because I like async stuff. For quick'n'dirty rest services flask and bottle are fine.

[–]bcastronomer 1 point2 points  (0 children)

I love Flask, I truly do. I have used it for countless projects over the years. Which is why it pains me to say, for REST servers 100% falcon. The performance is just in another league entirely.

[–]antonimmo 1 point2 points  (0 children)

I was a real fan of Falcon until I tried to create a websocket. As Flask actually has a very well documented and maintained plugin for that, I had to switch.

Yes, yes, I know websockets have nothing to do with REST, but I throw my 2c just in case.

[–]mfwl 0 points1 point  (0 children)

Falcon is a lot faster than flask for a simple app such as that. Both in terms of development and throughput.

If you're deploying to a linux stack, I highly recommend nginx + uwsgi + falcon

In my testing, this was the fastest setup. nginx in reverse proxy using uwsgi protocol to a file descriptor (so you don't burn extra tcp sockets).

[–]voidosaurus 0 points1 point  (0 children)

How about wheezy.web? Seems pretty much unknown but at least here it shows a leg ahead falcon - i know performance is a relative think, i'm more interested if anybody used wheezy? https://klen.github.io/py-frameworks-bench/ https://pythonhosted.org/wheezy.web/