WAFer icon indicating copy to clipboard operation
WAFer copied to clipboard

nope.c architecture

Open riolet opened this issue 11 years ago • 3 comments

Let's have a brief discussion about nope.c architecture. What I have in mind for nope.c is a layered architecture that embodies the Unix philosophy with three main strata:

  1. The core (nope.c): A minimalist HTTP server, mostly focussing on the event loop. We are using select() currently, but we could provide additional event notification systems (poll(),epoll() etc) as drop in replacements.
  2. The shell (nopeutils.c - optional): Provides a programming interface to the core, abstracting over most of the cores operations.
  3. The modules (optional): Provides various enhancements to make it easier to write useful web applications. nope.c does not need many specific nope.c modules as there are thousands of c libraries that nope.c can use natively. That said, we need modules for ssl, multi-part parsing and web sockets.

What are your thoughts?

riolet avatar Jul 30 '14 00:07 riolet

When considering performance issues, I think some components such as memory pool, connection pool may be added into the project, so what does these components belong to?

Charles0429 avatar Jul 30 '14 01:07 Charles0429

If performance issues are considered vital, connection pool and memory pool should be part of the core.

truongminh avatar Aug 08 '14 09:08 truongminh

@Charles0429 and @truongminh, please take a look at the multithreaded branch I am working on.

riolet avatar Aug 08 '14 13:08 riolet