Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

* Changes required to make monkey compile and run in windows

regex:  Added a regex implementation from gnuwin32 which is extracted from glibc
dirent : Added toni ronkkos dirent compatibility layer
winuio: based in https://android.googlesource.com/platform/external/fio/+/a133df91fa72701e4e448ca1ff81e0c41ed2df8b/os/windows/posix.c

* Erroneously committed file fix

* Patches required monkey to be able to handle clients in windows

Re-enabled liana and patched the code to run in windows (added a very simplistic sendfile plug that needs to be verified)
Modified the fifo creation to use socketpair in windows to prevent those file descriptors from making select fail
Fixed(?) a potential memory corruption in mk_server_create
Patched the TRACE related code so it compiled and worked somwhat close to as intended
Added a gettime plug
Added platform dependent conditionals around the read/write fifo calls to use send/recv in windows

* Added a mechanism to prematurely break out of the event loop in the worker loop

* Removed commented code.

* Changed the regex engine due to copyright incompatibilities

Switched from glibs regex engine to tiny-regex-c which uses the unlicense license.

https://github.com/kokke/tiny-regex-c

Co-authored-by: Leonardo Alminana <leonardo@alminana.com.ar>
63ff026

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
api
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
man
 
 
 
 
 
 
 
 
 
 
qa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Monkey Server

Monkey is a fast and lightweight Web Server for Linux. It has been designed to be very scalable with low memory and CPU consumption, the perfect solution for Embedded Linux and high end production environments.

Besides the common features as HTTP server, it expose a flexible C API which aims to behave as a fully HTTP development framework, so it can be extended as desired through the plugins interface.

For more details please refer to the official documentation.

Features

  • HTTP/1.1 Compliant
  • Hybrid Networking Model: Asynchronous mode + fixed Threads
  • Indented configuration style
  • Versatile plugin subsystem / API
  • x86, x86_64 & ARM compatible
  • More features:
    • SSL
    • IPv6
    • Basic Auth
    • Log writer
    • Security
    • Directory Listing
    • CGI
    • FastCGI
    • Much more!
  • Embeddable as a shared library

Requirements

When building Monkey it needs:

  • CMake >= 2.8
  • Glibc >= 2.5
  • GNU C Compiler >= 3.2

Monkey requires the following components on runtime:

  • Linux Kernel >= 2.6.32
  • Pthreads support

Writing Scalable Web Services

If you are interested into use Monkey as a base platform build scalable web services, we recommend you check our Duda I/O project made for that purpose.

Join us!

Monkey is an open organization so we want to hear about you, we continue growing and you can be part of it!, you can reach us at:

If you want to get involved, please also refer to our Contributing guidelines.

Author

Eduardo Silva eduardo@monkey.io