# PyServe PyServe is a modern, async HTTP server written in Python. Originally created for educational purposes, it has evolved into a powerful tool for rapid prototyping and serving web applications with unique features like AI-generated content. isolated [More on web page](https://pyserve.org/) ## Project Overview PyServe v0.6.0 introduces a completely refactored architecture with modern async/await syntax and new exciting features like **Vibe-Serving** - AI-powered dynamic content generation. ### Key Features: - **Async HTTP Server** - Built with Python's asyncio for high performance - **Advanced Configuration System V2** - Powerful extensible configuration with full backward compatibility - **Regex Routing & SPA Support** - nginx-style routing patterns with Single Page Application fallback - **Static File Serving** - Efficient serving with correct MIME types - **Template System** - Dynamic content generation - **Vibe-Serving Mode** - AI-generated content using language models (OpenAI, Claude, etc.) - **Reverse Proxy** - Forward requests to backend services with advanced routing - **SSL/HTTPS Support** - Secure connections with certificate configuration - **Modular Extensions** - Plugin-like architecture for security, caching, monitoring - **Beautiful Logging** - Colored terminal output with file rotation - **Error Handling** - Styled error pages and graceful fallbacks - **CLI Interface** - Command-line interface for easy deployment and configuration ## Getting Started ### Prerequisites - Python 3.12 or higher - Poetry (recommended) or pip ### Installation #### Via Poetry (рекомендуется) ```bash git clone https://github.com/ShiftyX1/PyServe.git cd PyServe make init # Initialize project ``` #### Или установка пакета ```bash # local install make install-package # after installing project you can use command pyserve pyserve --help ``` ### Running the Server #### Using Makefile (recommended) ```bash # start in development mode make run # start in production mode make run-prod # show all available commands make help ``` #### Using CLI directly ```bash # after installing package pyserve # or with Poetry poetry run pyserve # or legacy (for backward compatibility) python run.py ``` #### CLI options ```bash # help pyserve --help # path to config pyserve -c /path/to/config.yaml # rewrite host and port pyserve --host 0.0.0.0 --port 9000 # debug mode pyserve --debug # show version pyserve --version ``` ## Development ### Makefile Commands ```bash make help # Show help for commands make install # Install dependencies make dev-install # Install development dependencies make build # Build the package make test # Run tests make test-cov # Tests with code coverage make lint # Check code with linters make format # Format code make clean # Clean up temporary files make version # Show version make publish-test # Publish to Test PyPI make publish # Publish to PyPI ``` ### Project Structure ``` pyserveX/ ├── pyserve/ # Main package │ ├── __init__.py │ ├── cli.py # CLI interface │ ├── server.py # Main server module │ ├── config.py # Configuration system │ ├── routing.py # Routing │ ├── extensions.py # Extensions │ └── logging_utils.py ├── tests/ # Tests ├── static/ # Static files ├── templates/ # Templates ├── logs/ # Logs ├── Makefile # Automation tasks ├── pyproject.toml # Project configuration ├── config.yaml # Server configuration └── run.py # Entry point (backward compatibility) ``` ## License This project is distributed under the MIT license.