Nate 0096f84ee9 Config for the new toolset (#6259) 4 years ago
..
src 6fce84a278 WIP: Dockerify everything (#3457) 7 years ago
README.md 84015a4729 Implemented remaining tests for the Pronghorn server. (#2983) 7 years ago
benchmark_config.json 497f3d330d Port the remaining kotlin tests to docker (#3372) 7 years ago
build.gradle 8aa3831d1a Selected java10 fixes (#3464) 7 years ago
config.toml 0096f84ee9 Config for the new toolset (#6259) 4 years ago
pronghorn.dockerfile 0096f84ee9 Config for the new toolset (#6259) 4 years ago
settings.gradle afd8782678 Added Pronghorn server (#2972) 8 years ago

README.md

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