Введение
Совершенство достигается не тогда, когда больше ничего нельзя добавить, а когда больше ничего нельзя убрать.
- Антуан де Сент-Экзюпери
Falcon — надёный высокопроизводительный фреймворк Python для создания бэкендов приложений и микросервисов больших масштабов. Он поддерживает архитектурный стиль REST и стремится делать как можно меньше, оставаясь при этом высокоэффективным.
Приложения Falcon работают с любым сервером WSGI и отлично работают под CPython 2.7/3.5+ и PyPy.
Чем Falcon отличается?
Мы разработали Falcon, чтобы удовлетворить высокие потребности микросервисов и отзывчивых бэкендов приложений больших масштабов. Falcon дополняет более общие фреймворки Python, предоставляя базовую производительность, надёжность и гибкость там, где это необходимо.
Быстрый. Те же аппаратные средства, больше запросов. Falcon обрабатывает запросы в несколько раз быстрее, чем большинство других фреймворков Python. Для дополнительного повышения скорости Falcon компилирует себя с помощью Cython, когда это возможно, а также хорошо работает с PyPy. Вы планируете перейти на другой язык программирования? Сначала протестируйте Falcon + PyPy.
Надёжный. Мы прилагаем значительные усилия, чтобы избегать введения критических изменений, и когда это происходит, они полностью документированы и вводятся (в соответствии с SemVer) только с повышением основной версии. Код тщательно тестируется с множеством входных данных, и мы требуем 100% покрытия во всех случаях. Falcon не зависит от каких-либо внешних пакетов Python.
Гибкий. Falcon оставляет множество решений и деталей реализации вам, разработчику API. Это даёт вам большую свободу для настройки и оптимизации вашей реализации. Благодаря минималистичному дизайну Falcon, члены сообщества Python могут свободно внедрять инновации в дополнения Falcon и дополнительные пакеты.
Легко отлаживаемый. Falcon избегает магии. Легко определить, какие входные данные приводят к каким выходным данным. Необработанные исключения никогда не инкапсулируются или маскируются. Потенциально неожиданные действия, такие как автоматическое разбор тела запроса, хорошо документированы и отключены по умолчанию. Наконец, в отношении самого фреймворка мы заботимся о том, чтобы пути логики были простыми и понятными. Всё это упрощает рассуждения о коде и отладку граничных случаев в крупных развертываниях.
Функции
- Высокооптимизированная, расширяемая кодовая база
- Интуитивное маршрутизирование с помощью шаблонов URI и классов ресурсов, вдохновлённых REST
- Легкий доступ к заголовкам и телам через классы запроса и ответа
- Обработка запросов DRY с помощью компонентов и хуков middleware
- Идиоматические HTTP-ответы об ошибках
- Простая обработка исключений
- Быстрое тестирование единиц через WSGI-помощники и эмуляторы
- Поддержка Python 2.7, 3.5+
- Совместимость с PyPy
О лицензии Apache 2.0
Falcon распространяется на условиях лицензии Apache 2.0. Это означает, что вы можете использовать его в своих коммерческих приложениях, не раскрывая при этом свой собственный код с открытым исходным кодом. Это также означает, что если кто-то внесёт вклад в код, связанный с патентом, вам предоставляется бесплатная лицензия на использование данного патента. Это довольно выгодное предложение.
Теперь, если вы внесёте изменения в сам Falcon, подумайте о том, чтобы внести свой замечательный вклад обратно в сообщество.
Лицензия Falcon
Авторское право 2012-2017 принадлежит Rackspace Hosting, Inc. и другим участникам, как указано в отдельных файлах исходного кода.
Лицензия распространяется на условиях Лицензии Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, не соблюдая условия Лицензии. Вы можете получить копию Лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0Если закон или соглашение в письменной форме не требуют иного, программное обеспечение, распространяемое в соответствии с Лицензией, распространяется «как есть», БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО ВИДА, явных или подразумеваемых. Обратитесь к Лицензии за конкретными условиями предоставления разрешения и ограничениями по использованию.
Внося вклад в этот проект, вы соглашаетесь также лицензировать свой исходный код на условиях Лицензии Apache версии 2.0, как описано выше.
© 2019 by Falcon contributors
Licensed under the Apache License, Version 2.0.
https://falcon.readthedocs.io/en/2.0.0/user/intro.html