Введение
Совершенство достигается не тогда, когда больше нет ничего, что можно добавить, а когда больше нет ничего, что можно убрать.
- Антуан де Сент-Экзюпери
Falcon — надёный, высокопроизводительный фреймворк для Python, предназначенный для создания масштабируемых бэкендов приложений и микросервисов. Он поддерживает архитектурный стиль REST и стремится к максимальной эффективности с минимальными ресурсами.
Приложения Falcon совместимы с любым WSGI-сервером и отлично работают под CPython 2.7, PyPy и CPython 3.3+.
Чем Falcon отличается?
Мы разработали Falcon, чтобы удовлетворить высокие требования к микросервисам и отзывчивым бэкендам приложений. Falcon дополняет более универсальные фреймворки Python, предоставляя высокую производительность, надёжность и гибкость там, где это необходимо.
Быстрый. То же оборудование, больше запросов. Falcon обрабатывает запросы в несколько раз быстрее, чем большинство других фреймворков Python. Для дополнительного ускорения Falcon компилируется с помощью Cython, если это возможно, и хорошо работает с PyPy. Размышляете о переходе на другой язык программирования? Сначала протестируйте Falcon + PyPy.
Надёжный. Мы прилагаем значительные усилия, чтобы избежать внесения критических изменений, а когда это происходит, они полностью документированы и вводятся (в духе SemVer) только с увеличением основной версии. Код тщательно тестируется с различными входными данными, и мы требуем 100%-й охват тестами в любое время. Единственными сторонними зависимостями являются six и mimeparse.
Гибкий. Falcon оставляет много решений и деталей реализации на усмотрение разработчика API. Это предоставляет вам большую свободу в настройке и оптимизации реализации. Благодаря минималистичному дизайну Falcon члены сообщества Python могут самостоятельно разрабатывать дополнения и дополнительные пакеты Falcon.
Легко отлаживаемый. Falcon избегает магических решений. Легко определить, какие входные данные приводят к каким выходным данным. Необработанные исключения никогда не инкапсулируются или маскируются. Потенциально неожиданное поведение, например, автоматическое разбор тела запроса, хорошо документировано и отключено по умолчанию. Наконец, когда дело доходит до самого фреймворка, мы стараемся поддерживать простоту и понятность логических путей. Всё это упрощает понимание кода и отладку граничных случаев в масштабируемых развертываниях.
Особенности
- Высокооптимизированная, расширяемая кодовая база
- Интуитивное маршрутизирование с помощью шаблонов URI и классов ресурсов, вдохновлённых REST
- Легкий доступ к заголовкам и телам через классы запроса и ответа
- Обработка запросов DRY с помощью компонентов и хуков middleware
- Идиоматические HTTP-ответы на ошибки
- Простое управление исключениями
- Быстрое тестирование с помощью WSGI-помощников и моков
- CPython 2.6-2.7, PyPy 2.7, Jython 2.7 и
Об 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, описанной выше.
© 2012–2017 by Rackspace Hosting, Inc. and other contributors
Licensed under the Apache License, Version 2.0.
https://falcon.readthedocs.io/en/1.4.1/user/intro.html