When comparing CodeIgniter vs FastAPI, the Slant community recommends FastAPI for most people. In the question“What are the best backend web frameworks?” FastAPI is ranked 4th while CodeIgniter is ranked 17th. The most important reason people chose FastAPI is:
It has a simple but powerful dependency injection system, it can be used to handle authentication, per-user rate limiting, authorization controls (e.g. with roles), etc.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Beginner-friendly
Setting up CodeIgniter is quick and easy. You can download the version you want from the CI homepage or directly pull the latest version from GitHub. After that, you unzip the contents to the directory that's required. The final step is to edit the config.php
to suit your needs and it's set up and ready for development.
There are also a lot of guides and tutorials from developers who have been using CI for a long time. This is because of the relative old age of the framework and the large community behind it.
Pro Lightweight
CodeIgniter has a small footprint, just 3MB and that's including the user guide.
Pro Well documented
The documentation is clear, structured and thorough. It explains both commonly used and CodeIgniter specific concepts and always with clear examples.
Pro Active community
Because it's relatively old and well-liked, it has an active community of developers behind it. It's used by a lot of websites in production.
Pro Open source
The MIT License (MIT)
CodeIgniter is open source and is distributed under the MIT license.
Pro Stable
CodeIgniter is tested by hundreds of thousand of developers that use it in production. This means that it's very hard for any bugs or problems to go unnoticed. Even when a new version is out, bugs are quickly found and patched up.
Pro Easy to use templating engine
CodeIgniter has it's own templating engine built-in. It's based on a mustache-like templating language which is easy to learn for new developers who have never seen it. While experienced developers will feel very comfortable using it.
Pro Output caching
CodeIgniter lets you cache the web pages in order to decrease loading times and increase efficiency and performance.
Pro CodeIgniter v4 is a complete rewrite
CI4 will be out soon & is a rewrite..
"CodeIgniter 4 is a rewrite of the framework and is not backwards compatible."
So it will support ALOT more newer functionality built-in.
Pro Dependency injection
It has a simple but powerful dependency injection system, it can be used to handle authentication, per-user rate limiting, authorization controls (e.g. with roles), etc.
Pro Standards
It is based on standards: OpenAPI, JSON Schema and OAuth 2.0.
Pro Data validation
It validates the data using the types you declared. Even in deeply nested JSON requests.
Pro High-performance
It's based on Starlette and Pydantic, so, it's one of the fastest Python frameworks.
Pro Editor completion
It is based on Python type declarations, so, editors and tools can give great support. Including type checks and autocompletion everywhere.
Pro One of the fastest growing communities
Pro Fast is really fast (!)
It's easy to develop API based applications in Python on deadlines for Android and IOS Development.
Pro Automatic docs
It generates interactive API documentation automatically from your code.
Pro Database independent
It's independent of database or ORM, but compatible with all of them. Including relational databases and NoSQL.
Pro Async IO / optional
It's based on Async IO, which gives it high concurrency. But you can use non-async libraries and it runs them appropriately.
Pro World class documentation
It has some of the best documentation of any framework.
Pro WebSockets
Because it's an async framework, it can handle async-native protocols like WebSockets.
Pro OAuth 2.0
It has integrated support for OAuth 2.0. Including declaring required scopes per endpoint. So, you can easily integrate it with external OAuth 2.0 providers or build your own with it.
Pro Background tasks
Included support for background tasks, thanks to being based on Starlette.
Pro Supports GraphQL
Python's graphene library is included as an optional dependency meaning that GraphQL API's are supported out of the box, with no additional tweaking needed.
Cons
Con Outdated
CodeIgniter was first released during the times of PHP 4. This means that a lot of features that were added later to PHP are not available. Some of these features are:
- Support for namespaces
- Modular separation by default
- Procedural function helpers
While nowadays CodeIgniter can be used along the latest version of PHP, these features were not added so as not to mess with backward compatibility. They can still be used with CI, but it requires extending core files to make it work which is a waste of time and energy and requires advanced knowloedge of both PHP and CI.
Con No unit testing
Con It does not have basic functions
Some of the missing features include controller security, filters in forms and modoles, rules of validation, among others.
Con Smaller community
Since FastAPI is relatively new, its community is smaller than Django Rest Framework. But it can grow with time.