README.md 3.0 KB

Pronghorn

This is the Pronghorn Http Server portion of the TechEmpower Framework Benchmarks.

About

The Pronghorn HTTP Server is a low-level, high performance HTTP server written in Kotlin.

Version

v0.1.2 : https://github.com/pronghorn-tech/server/releases/tag/0.1.2

Test Types

Plaintext

url : http://TFB-server:8080/plaintext source code : TestServer.kt

Json Serialization

url : http://TFB-server:8080/json source code : JsonHandler.kt

Single Query

url : http://TFB-server:8080/db source code : MongoDBRequestSingleHandler.kt

Multiple Query

url : http://TFB-server:8080/queries source code : MongoDBRequestMultiHandler.kt

Data Updates

url : http://TFB-server:8080/updates source code : MongoDBRequestUpdatesHandler.kt

Fortunes

url : http://TFB-server:8080/fortunes source code : MongoDBRequestFortunesHandler.kt

Additional Dependencies

Pronghorn Plugins

Pronghorn is by default a zero dependency library, but for the purpose of benchmarking these tests utilize three Pronghorn plugins for performance and logging :

Additionally, database driven tests utilize the Pronghorn MongoDB Driver Stream which implements the MongoDB Driver's Stream interface via the Pronghorn Coroutine Framework. This utilizes the cooperative nature of concurrency in Pronghorn to enable efficient multiplexing of database communication.

Third-Party Libraries

Beyond the Pronghorn plugins above, these tests utilize several third party libraries.

JsonIter

Tests requiring json encoding utilize the jsoniter library, as well as the Javassist library for improved performance of jsoniter.

MongoDB Async Driver

Database tests depend on the async MongoDB driver.

HTTL

The Fortunes test utilizes the httl library as the template engine.

Contact

For additional information, help, or corrections concerning Pronghorn or these tests contact info [at] pronghorn.tech