Skip to main content

A simple FastAPI webserver with a bunch of useful resources.

Project description

FastAPI WebServer

This is a wrapper of a FAST API application with some additional features that might be useful for quick web development.

It features:

  • Powerful environment and settings handling with Dynamic module import like Django;
  • A Database Adapter to connect to any database on-the-fly;
  • A Data Migration Tool, to run .sql files, or migrate json data;
  • An SMTP service, implemented on top of fastapi-mail;
  • SASS Compiler;
  • Server-Side Rendering via Jinja2Template;
  • Static Files provider;
  • CORS Support;
  • TLS Support + mkcert certificates (local/development only)

Roadmap

The following features are expected to be implemented in the future. Contribution is welcome.

  • OCI-Compliant Image for Docker/Podman
  • Local Key-Value Cache
  • Logging and Tracing API (via OpenTelemetry)
  • Authentication and Authorization
  • Traffic Analyzer
    • (AI) Bot detector
    • VPN detector
    • Rate limiter
    • IP-based Access-Control List (ACL)
  • Content Providers (HTTP client and proxy)
    • Google Fonts API
    • Gravatar
    • GIPHY

Getting Started

Optionally, set up the environment variables. All environment variables can be found on .env file in the root of this repository.

import webserver
from fastapi import APIRouter, FastAPI

router: APIRouter = APIRouter()
app: FastAPI = webserver.app


@router.get("/")
def index():
  return {"Hello World": f"from {webserver.settings.APP_NAME}"}


app.include_router(router)

if __name__ == "__main__":
  webserver.start()

This enables both local execution through main method as well as fastapi (dev|run) commands.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_webserver-0.3.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_webserver-0.3.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_webserver-0.3.0.tar.gz.

File metadata

  • Download URL: fastapi_webserver-0.3.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for fastapi_webserver-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a2dd412af41d36770a11ee14c299368e0802c4c9eee968085df6b1cd38878c7b
MD5 63bd8d8161d6094477b0d4ec28b50b6f
BLAKE2b-256 3443f58a8c9c77ee0d101b17245d1e8f8f995d3071803a547e7d928c4981bfeb

See more details on using hashes here.

File details

Details for the file fastapi_webserver-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_webserver-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a3665e2069da5c31d4ebf478b05b9e19ce6b5a8e32915eab899a62f4f8e1d9b
MD5 c591e368a393b26841c6787d8340cd71
BLAKE2b-256 79681b9236bc0ec455f53b122f8cf52ba44fab6ffbb606d967a64f9648d66463

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page