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

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
old
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

Lysten Logo

Lysten

A general-purpose server, implemented using multiplexed I/O with epoll and custom thread pools for concurrency on a multicore system.

Table of Contents

  1. Setting up Libraries
  2. Compiling
  3. Debugging
  4. Testing
  5. Running
  6. Built With
  7. Contributing
  8. Authors
  9. License

Setting up Libraries

Lysten uses either static or shared libraries in order to incorporate the thread pool. These libraries can be set with make.

Static Library Compilation

   make package-static-lib

Shared Library Compilation

   make package-shared-lib

Back to top

Compiling

To compile Lysten using the shared thread pool libraries, run:

   make compile-shared

To compile Lysten using the static thread pool libraries, run:

   make compile-static

Back to top

Debugging

To compile Lysten with debugging statements on, run:

   make compile-debug

Note: This compiles using the thread pool's static libraries, so make sure to run make package-static-lib first.

Back to top

Testing

Included is a test script to pelt the server with multiple clients all at once. You can run this test with:

  make test-server

By default, the test script will spin up 10 clients who each run 10 cycles or commands. This can be changed by running ./test/testserver.sh directly

Back to top

Running

To run the server, execute:

    make run-server

To start a client, execute:

    make run-client

Back to top

Built With

  • C - The C language itself
  • Epoll - Multiple epoll units are used to efficiently retrieve tasks from a job queue
  • Thread Pool - A custom thread pool is used to disperse tasks across cores
  • Pseudo TTYs - Psuedo terminals spin up to run Bash commands remotely

Back to top

Contributing

As always, I'm very happy to receive pull requests, questions/issues regarding code, and feature requests.

Back to top

Authors

Back to top

License

Lysten is licensed under the MIT License - see the LICENSE.md file for details.

Back to top

About

☎️ A general-purpose, C-based server, implemented using multiplexed I/O with epoll and custom thread pools.

Resources

License

Releases

No releases published

Packages

No packages published