Giter VIP home page Giter VIP logo

pynginx's Introduction

PyNginx

Nginx for Python.

Furthermore, it is a Python version of Engine.

In fact, PyNginx is a project that gradually became independent in the process of programming Engine.

Driven (still in a very primitive stage) is separated from Engine, And PyNginx comes from the embedded web server for debugging in Driven.

All of these are for the idea of the Engine project, In essence, it is an attempt to coordinate the use of multiple technologies based on a specific balance consideration.

One of the more realistic meanings of PyNginx is to understand the source code of Nginx better.

For learning Nginx

Reading the source code of Nginx can answer many deep technical questions about web servers.

The process of developing PyNginx is the process of reading the source code of Nginx. The developing progress will follow the reading progress and lag behind the reading progress. In iterative versions, from version 0.1.0, PyNginx will always be able to run as a (certain range) available web server.

Specifically, it is guaranteed to support the usage shown in the examples directory (You will find that it gives priority to supporting some features of Engine at the beginning).

What is the same (or analogous) to Nginx

The following are the goals of corresponding to Nginx which will be achieved by version 0.1.0:

  • Main usage, especially about configuration files
  • Key design concepts, which can be used to understand the mechanism of Nginx
a. Core data structure ngx_cycle
b. Module framework mechanism
c. Event loop based on epoll
d. Parsing the config file

The code of PyNginx is mapped with the code of Nginx as much as possible. Even try to keep the same variable naming (just replace the ngx prefix with the pyngx prefix).

Note some differences

  • Before it is perfected to a high enough version, PyNginx cannot be guaranteed to be consistent with Nginx in use and operation (on configuration files mainly).
  • Forming a code mapping with Nginx to achieve the effect of interpretation does not mean that it is completely written according to the implementation of Nginx. It is necessary to consider combining the features of Python as a high-level language. In fact, I am trying to use the functional programming paradigm to achieve a balance between the two.

Contact with me

pynginx's People

Contributors

bobobozh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.