2022-05-28 13:47:26 +00:00
# socketify.py
2022-11-05 15:58:00 +00:00
2022-05-24 19:37:16 +00:00
2022-11-08 11:25:54 +00:00
< p align = "center" >
2022-11-08 11:26:40 +00:00
< a href = "https://github.com/cirospaciari/socketify.py" > < img src = "https://raw.githubusercontent.com/cirospaciari/socketify.py/main/misc/logo.png" alt = "Logo" height = 170 > < / a >
2022-11-08 11:25:54 +00:00
< br / >
< br / >
< a href = "https://github.com/cirospaciari/socketify.py/actions/workflows/macos.yml" target = "_blank" > < img src = "https://github.com/cirospaciari/socketify.py/actions/workflows/macos.yml/badge.svg" / > < / a >
< a href = "https://github.com/cirospaciari/socketify.py/actions/workflows/linux.yml" target = "_blank" > < img src = "https://github.com/cirospaciari/socketify.py/actions/workflows/linux.yml/badge.svg" / > < / a >
< a href = "https://github.com/cirospaciari/socketify.py/actions/workflows/windows.yml" target = "_blank" > < img src = "https://github.com/cirospaciari/socketify.py/actions/workflows/windows.yml/badge.svg" / > < / a >
< / p >
2022-05-24 19:37:16 +00:00
2022-10-11 12:33:55 +00:00
2022-11-08 11:25:54 +00:00
socketify.py brings:
- WebSocket with pub/sub support
- Fast and realiable Http/Https
- Support for Windows, Linux and macOS Silicon & x64
- Support for [`PyPy3` ](https://www.pypy.org/ ) and [`CPython` ](https://github.com/python/cpython )
This project aims to bring high performance PyPy3 web development and will bring:
- fetch like API powered by libuv
- async file IO powered by libuv
- full asyncio integration with libuv
2022-11-08 11:28:34 +00:00
We created and adapt the full C API from [uNetworking/uWebSockets ](https://github.com/uNetworking/uWebSockets ) and integrate libuv powered fetch and file IO, this same C API is used by [Bun ](https://bun.sh/ )
2022-11-08 11:25:54 +00:00
2022-11-08 11:34:26 +00:00
## Install
For macOS x64 & Silicon, Linux x64, Windows
2022-05-24 19:37:16 +00:00
```bash
2022-11-04 23:08:20 +00:00
pip install git+https://github.com/cirospaciari/socketify.py.git
2022-05-28 20:04:35 +00:00
#or specify PyPy3
2022-11-04 23:08:20 +00:00
pypy3 -m pip install git+https://github.com/cirospaciari/socketify.py.git
2022-05-29 00:00:21 +00:00
#or in editable mode
pypy3 -m pip install -e git+https://github.com/cirospaciari/socketify.py.git@main#egg=socketify
2022-05-24 19:37:16 +00:00
```
2022-11-08 11:34:26 +00:00
Using install via requirements.txt
2022-05-29 00:00:21 +00:00
```text
2022-11-04 23:08:20 +00:00
git+https://github.com/cirospaciari/socketify.py.git@main#socketify
2022-05-29 00:00:21 +00:00
```
2022-05-24 19:37:16 +00:00
```bash
2022-05-29 00:00:21 +00:00
pip install -r ./requirements.txt
#or specify PyPy3
pypy3 -m pip install -r ./requirements.txt
2022-05-24 19:37:16 +00:00
```
2022-05-25 14:01:56 +00:00
2022-11-08 11:34:26 +00:00
## Examples
Hello world app
```python
from socketify import App
app = App()
app.get("/", lambda res, req: res.end("Hello World socketify from Python!"))
app.listen(3000, lambda config: print("Listening on port http://localhost:%d now\n" % config.port))
app.run()
```
2022-11-08 11:25:54 +00:00
SSL version sample
2022-05-25 14:01:56 +00:00
``` python
2022-05-28 13:47:26 +00:00
from socketify import App, AppOptions
2022-05-25 14:01:56 +00:00
app = App(AppOptions(key_file_name="./misc/key.pem", cert_file_name="./misc/cert.pem", passphrase="1234"))
2022-05-28 13:47:26 +00:00
app.get("/", lambda res, req: res.end("Hello World socketify from Python!"))
2022-05-28 19:59:08 +00:00
app.listen(3000, lambda config: print("Listening on port http://localhost:%d now\n" % config.port))
2022-05-25 14:01:56 +00:00
app.run()
2022-05-28 20:04:35 +00:00
```
2022-11-08 11:34:26 +00:00
We have more than 20 examples [click here ](https://github.com/cirospaciari/socketify.py/tree/main/examples ) for more
## Build local from source
2022-05-28 20:04:35 +00:00
```bash
#clone and update submodules
git clone https://github.com/cirospaciari/socketify.py.git
cd ./socketify.py
git submodule update --init --recursive --remote
2022-11-07 14:06:13 +00:00
#you can use make linux, make macos or call Make.bat from Visual Studio Development Prompt to build
cd ./src/socketify/native/ & & make linux & & cd ../../../
2022-05-29 00:00:21 +00:00
#install local pip
2022-11-04 23:08:20 +00:00
pypy3 -m pip install .
2022-05-29 00:00:21 +00:00
#install in editable mode
pypy3 -m pip install -e .
2022-05-28 20:04:35 +00:00
#if you want to remove
pypy3 -m pip uninstall socketify
2022-10-11 12:33:55 +00:00
```