All Projects → aisk → Multicorn

aisk / Multicorn

Licence: mit
Multicorn is a multi-interpreter server for Python.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Multicorn

Wsgidav
A generic and extendable WebDAV server based on WSGI
Stars: ✭ 476 (+1662.96%)
Mutual labels:  wsgi, webserver
httoop
HTTOOP - a fully object oriented HTTP protocol library written in python
Stars: ✭ 15 (-44.44%)
Mutual labels:  webserver, wsgi
Ansible Role Nginx
Ansible Role - Nginx
Stars: ✭ 632 (+2240.74%)
Mutual labels:  webserver
Serve
Serve is a small Rack-based web server and rapid prototyping framework for Web applications (specifically Rails apps). Serve is meant to be a lightweight version of the Views part of the Rails MVC. This makes Serve an ideal framework for prototyping Rails applications or creating simple websites. Serve has full support for Rails-style partials and layouts.
Stars: ✭ 844 (+3025.93%)
Mutual labels:  webserver
Bludit
Simple, Fast, Secure, Flat-File CMS
Stars: ✭ 824 (+2951.85%)
Mutual labels:  webserver
Agoo
A High Performance HTTP Server for Ruby
Stars: ✭ 679 (+2414.81%)
Mutual labels:  webserver
Django Source
django 源码剖析
Stars: ✭ 20 (-25.93%)
Mutual labels:  wsgi
Speed Camera
A Unix, Windows, Raspberry Pi Object Speed Camera using python, opencv, video streaming, motion tracking. Includes a Standalone Web Server Interface, Image Search using opencv template match and a whiptail Admin Menu Interface Includes picam and webcam Plugins for motion track security camera configuration including rclone sync script. watch-app allows remotely controller camera configuration from a remote storage service name. Uses sqlite3 and gnuplot for reporting. Recently added openalpr license plate reader support.
Stars: ✭ 539 (+1896.3%)
Mutual labels:  webserver
Caprover
Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids
Stars: ✭ 7,964 (+29396.3%)
Mutual labels:  webserver
Beetlex
high performance dotnet core socket tcp communication components, support TLS, HTTP, HTTPS, WebSocket, RPC, Redis protocols, custom protocols and 1M connections problem solution
Stars: ✭ 802 (+2870.37%)
Mutual labels:  webserver
B0pass
百灵快传:基于Go语言的高性能 "手机电脑超大文件传输神器"、"局域网共享文件服务器"。LAN large file transfer tool。
Stars: ✭ 836 (+2996.3%)
Mutual labels:  webserver
Crow
Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
Stars: ✭ 6,618 (+24411.11%)
Mutual labels:  webserver
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Stars: ✭ 720 (+2566.67%)
Mutual labels:  webserver
Webcpp
用C++开发web服务器框架
Stars: ✭ 23 (-14.81%)
Mutual labels:  webserver
Werkzeug
The comprehensive WSGI web application library.
Stars: ✭ 5,910 (+21788.89%)
Mutual labels:  wsgi
Lib
single header libraries for C/C++
Stars: ✭ 866 (+3107.41%)
Mutual labels:  webserver
Hunchentoot
Web server written in Common Lisp
Stars: ✭ 589 (+2081.48%)
Mutual labels:  webserver
Httperrorpages
⏩ Simple HTTP Error Page Generator
Stars: ✭ 772 (+2759.26%)
Mutual labels:  webserver
Ansible Role Htpasswd
Ansible Role - htpasswd
Stars: ✭ 17 (-37.04%)
Mutual labels:  webserver
Treefrog Framework
TreeFrog Framework : High-speed C++ MVC Framework for Web Application
Stars: ✭ 885 (+3177.78%)
Mutual labels:  webserver

multicorn

multicorn

Multicorn is an experimental multi-interpreter server/framework for Python.

Motivation

For a long time, Python programmers were suffered from Python's GIL issue when building server-side applications. To fully use the multiple CPU cores on modern machines, we have to use multi-processing since one python interpreter instance can only use one CPU core because of the GIL.

This caused huge memory costs and made stateful server programming harder because we can't share data between processes easily.

PEP554 brings the new hope: we can have multiple python interpreters in one process, and every interpreter has its own GIL. All the interpreters can run parallel.

Multicorn is an experimental project for writing server-side network applications in multi-interpreters. It's more like a multi-interpreter version of gunicorn, instead of using multi-process.

Current status

  • [x] Support run TCP server in multi-interpreters.
  • [x] Support run WSGI server in multi-interpreters.
  • [ ] Support run ASGI server in multi-interpreters.
  • [ ] Manage the life cycle of sub-interpreters.

Limitations

Multicorn is using private modules which are added in python3.8, so python3.8 or later is required.

For the current implementation of the sub-interpreter in python, the GIL is shared between all sub-interpreters. So multicorn can not use multi CPU cores in one process now sadly. There is a project to solve it: multi-core-python, let's keep tracking on it.

License

Multicore is distributed by a MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].