# FastAPI

> software framework for developing web applications in Python

**Wikidata**: [Q101119404](https://www.wikidata.org/wiki/Q101119404)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/FastAPI)  
**Source**: https://4ort.xyz/entity/fastapi

## Summary
FastAPI is a modern, high-performance Python web framework designed for building APIs quickly and efficiently. Created by Sebastián Ramírez, it leverages Python type hints and async support to deliver fast development and low-latency responses. The framework is built on Starlette and Pydantic, offering automatic API documentation and data validation out of the box.

## Key Facts
- **Type**: Web framework for Python
- **Creator**: Sebastián Ramírez
- **Initial Release**: 0.1.0 (December 8, 2018)
- **Latest Version**: 0.61.1 (August 29, 2020)
- **License**: MIT License
- **Built Upon**: Starlette (ASGI framework) and Pydantic (data validation)
- **Primary Use**: Developing web applications and APIs
- **Programming Language**: Python
- **Website**: [fastapi.tiangolo.com](https://fastapi.tiangolo.com/)
- **Source Code**: [GitHub repository](https://github.com/tiangolo/fastapi)
- **Aliases**: FastAPI, فاست ايه بي اي
- **Wikipedia Entry**: [FastAPI](https://en.wikipedia.org/wiki/FastAPI)

## FAQs
### Q: What is FastAPI used for?
A: FastAPI is used for building web applications and APIs in Python. It is optimized for performance, ease of use, and automatic documentation generation.

### Q: Who created FastAPI?
A: FastAPI was created by Sebastián Ramírez, a Python developer known for his work on the framework.

### Q: What makes FastAPI different from other Python web frameworks?
A: FastAPI stands out due to its use of Python type hints for automatic data validation, built-in support for async/await, and automatic API documentation (via OpenAPI/Swagger UI).

### Q: Is FastAPI open-source?
A: Yes, FastAPI is open-source and licensed under the MIT License, making it freely available for use and modification.

### Q: How does FastAPI handle data validation?
A: FastAPI uses Pydantic for data validation, allowing developers to define data models with Python type hints, which are then automatically validated.

## Why It Matters
FastAPI has gained significant traction in the Python web development community for its simplicity, performance, and developer-friendly features. By leveraging Python type hints and async support, it reduces boilerplate code and speeds up development. The framework’s automatic API documentation and data validation make it ideal for building robust, scalable web applications. Its adoption has contributed to the broader ecosystem of Python web frameworks, offering a modern alternative to Flask and Django for API development. FastAPI’s focus on performance and ease of use has made it a preferred choice for developers building high-speed APIs and web services.

## Notable For
- **Automatic API Documentation**: FastAPI generates interactive API docs (Swagger UI and ReDoc) automatically, reducing manual documentation efforts.
- **Performance**: Built on Starlette (an ASGI framework), FastAPI delivers high performance with low-latency responses.
- **Type Hints**: Uses Python type hints for automatic data validation, improving code reliability and reducing runtime errors.
- **Async Support**: Fully supports asynchronous programming, enabling efficient handling of I/O-bound tasks.
- **MIT License**: Open-source and permissively licensed, encouraging community contributions and adoption.

## Body
### Overview
FastAPI is a modern web framework for building APIs with Python. It was first released in December 2018 and is maintained by Sebastián Ramírez. The framework is designed to be fast, easy to use, and highly productive, making it a popular choice for developers.

### Technical Features
- **Built on Starlette**: FastAPI is based on Starlette, an ASGI framework, which provides the foundation for its performance and async capabilities.
- **Pydantic Integration**: FastAPI uses Pydantic for data validation and settings management, allowing developers to define data models with Python type hints.
- **Automatic Documentation**: FastAPI automatically generates interactive API documentation (Swagger UI and ReDoc) based on the code and type hints.
- **Async Support**: The framework fully supports asynchronous programming, enabling efficient handling of I/O-bound operations.

### Release History
- **0.1.0**: Initial release on December 8, 2018.
- **0.61.1**: Latest stable version as of August 29, 2020.
- **Ongoing Development**: The project continues to evolve with regular updates and community contributions.

### Community and Adoption
- **GitHub Repository**: The source code is hosted on GitHub, where it has been actively maintained and improved.
- **Stack Overflow**: FastAPI has a dedicated tag on Stack Overflow, indicating its growing user base and community support.
- **Wikipedia Entry**: The framework has a Wikipedia page, reflecting its recognition in the broader tech community.

### Licensing and Availability
- **MIT License**: FastAPI is open-source and licensed under the MIT License, allowing for free use, modification, and distribution.
- **PyPI Package**: The framework is available as a package on PyPI, making it easy to install and integrate into projects.

### Alternatives and Comparisons
- **Flask**: Unlike Flask, FastAPI is designed specifically for building APIs and includes built-in features like automatic documentation and data validation.
- **Django**: While Django is a full-stack framework, FastAPI focuses on API development, offering a more lightweight and modern approach.

FastAPI’s combination of performance, ease of use, and developer-friendly features has made it a standout in the Python web framework ecosystem. Its adoption continues to grow, driven by its ability to simplify API development while maintaining high performance.

## References

1. [Source](https://api.github.com/repos/tiangolo/fastapi)
2. [fastapi · PyPI. 2018](https://pypi.org/project/fastapi/0.1.0/)
3. [Release 0.61.1. 2020](https://github.com/tiangolo/fastapi/releases/tag/0.61.1)
4. [Release 0.1.11. 2018](https://github.com/tiangolo/fastapi/releases/tag/0.1.11)
5. [Release 0.1.16. 2018](https://github.com/tiangolo/fastapi/releases/tag/v0.1.16)
6. [Release 0.1.17. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.1.17)
7. [Release 0.1.19. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.1.19)
8. [Release 0.2.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.2.0)
9. [Release 0.2.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.2.1)
10. [Release 0.3.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.3.0)
11. [Release 0.4.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.4.0)
12. [Release 0.5.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.5.0)
13. [Release 0.5.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.5.1)
14. [Release 0.6.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.6.0)
15. [Release 0.6.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.6.1)
16. [Release 0.6.2. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.6.2)
17. [Release 0.6.3. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.6.3)
18. [Release 0.6.4. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.6.4)
19. [Release 0.7.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.7.0)
20. [Release 0.7.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.7.1)
21. [Release 0.8.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.8.0)
22. [Release 0.9.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.9.0)
23. [Release 0.9.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.9.1)
24. [Release 0.10.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.10.0)
25. [Release 0.10.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.10.1)
26. [Release 0.10.2. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.10.2)
27. [Release 0.10.3. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.10.3)
28. [Release 0.11.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.11.0)
29. [Release 0.12.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.12.0)
30. [Release 0.12.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.12.1)
31. [Release 0.13.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.13.0)
32. [Release 0.14.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.14.0)
33. [Release 0.15.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.15.0)
34. [Release 0.16.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.16.0)
35. [Release 0.17.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.17.0)
36. [Release 0.18.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.18.0)
37. [Release 0.19.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.19.0)
38. [Release 0.20.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.20.0)
39. [Release 0.20.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.20.1)
40. [Release 0.21.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.21.0)
41. [Release 0.22.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.22.0)
42. [Release 0.23.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.23.0)
43. [Release 0.24.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.24.0)
44. [Release 0.25.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.25.0)
45. [Release 0.26.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.26.0)
46. [Release 0.27.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.27.0)
47. [Release 0.27.1. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.27.1)
48. [Release 0.27.2. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.27.2)
49. [Release 0.28.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.28.0)
50. [Release 0.29.0. 2019](https://github.com/tiangolo/fastapi/releases/tag/0.29.0)