Metadata-Version: 2.4
Name: HTTP-PyServer
Version: 0.1.4.4
Summary: Simple way to make complex HTTP servers with python
Author-email: Alex-Jando <alexjando2007@outlook.com>
Project-URL: Homepage, https://github.com/Alex-Jando/HTTP-PyServer
Project-URL: Bug Tracker, https://github.com/Alex-Jando/HTTP-PyServer/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Project Description

HTTP-PyServer is a simple, and extremely light-weight solution to create powerful projects relying on the web with the fewest lines of code. It uses python built-in packages to host server's and then handle http requests, as well as responses. It's extremely customizable, and allows you do to almost everything you might want.

HTTP-PyServer is also very flexible on your project layout. It ensures security by allowing you to specify which files to send, and to where. HTTP-PyServer allows you to do everything you need whilst keeping hands relaxed with as few lines of code as possible.

# Features

- Return various filetypes (HTML, CSS, JS, JSON, Images, Video)
- Get information from the users request (Headers, IP Addresses, Queries)
- Handle any HTTP request type
- Use a custom logger to record any server activity how you want
- Utilizes multi-threading to ensure quick response times
- Relies on **NO NON-NATIVE LIBRARIES** which leads to super quick runtimes
- Handle wildcard routes to access different ressources
- Cache information in the server and automaticall delete it after a certain time
- Store user data in sessions to identify profiles
- Integrate python code into your static files with templating

# Installing

Install HTTP-PyServer using pip from the command line.

```
python -m pip install HTTP-PyServer
```

# Simple Example

```
# Saved as "main.py"
import server

app = server.Server()

@app.route('/')
def _(request):

    return 'Hello, world!'

with app:
    
    app.wait('Press Enter to continue...')
```

```
$ python main.py
Press Enter to continue...

```

# Contributing

Look on github, and create a fork of HTTP-PyServer. Submit pull requests, and any features will be looked at and potentially implemented.

# Used Packages

Although, no external packages were used, the following packages were imported. All packages are native in `Python 3.7+`.

- `threading`
- `socket`
- `typing`
- `logging`
- `pathlib`
- `re`
- `time`
- `json`
- `urllib`
- `mimetypes`
- `enum`
- `ssl`
- `secrets`
