├── .gitignore ├── LICENSE ├── README.md ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src ├── main └── kotlin │ └── tech │ └── pronghorn │ ├── http │ ├── HttpRequest.kt │ ├── HttpResponse.kt │ ├── HttpResponseHeaderValue.kt │ ├── HttpResponseHeaderValuePair.kt │ ├── HttpResponses.kt │ ├── ResponseContent.kt │ └── protocol │ │ ├── AsciiConstants.kt │ │ ├── CommonContentEncodings.kt │ │ ├── CommonContentTypes.kt │ │ ├── HttpMethod.kt │ │ ├── HttpRequestHeader.kt │ │ ├── HttpRequestParser.kt │ │ ├── HttpResponseCode.kt │ │ ├── HttpResponseHeader.kt │ │ ├── HttpUrl.kt │ │ ├── HttpUrlParser.kt │ │ ├── HttpVersion.kt │ │ └── QueryParam.kt │ ├── server │ ├── ConnectionDistributionStrategy.kt │ ├── HttpServer.kt │ ├── HttpServerConnection.kt │ ├── HttpServerWorker.kt │ ├── ReusePort.kt │ ├── bufferpools │ │ ├── ManagedByteBuffer.kt │ │ ├── OneUseByteBufferAllocator.kt │ │ └── ReusableBufferPoolManager.kt │ ├── config │ │ └── HttpServerConfig.kt │ ├── requesthandlers │ │ ├── DirectHttpRequestHandler.kt │ │ ├── HttpRequestHandler.kt │ │ └── StaticHttpRequestHandler.kt │ ├── selectionhandlers │ │ ├── AcceptHandler.kt │ │ └── HttpSocketHandler.kt │ └── services │ │ ├── ConnectionAcceptService.kt │ │ ├── ConnectionReadService.kt │ │ ├── HttpRequestHandlerService.kt │ │ ├── ResponseWriterService.kt │ │ └── ServerConnectionCreationService.kt │ └── util │ ├── ByteUnits.kt │ ├── GzipUtils.kt │ ├── IntAsStringUtils.kt │ ├── ServerUtils.kt │ └── finder │ ├── ByteBacked.kt │ ├── ByteBackedFinder.kt │ ├── DifferentiatedFinder.kt │ ├── Equals.kt │ ├── FinderGenerator.kt │ ├── HashFinder.kt │ ├── LengthPartitionedFinder.kt │ └── SequentialFinder.kt └── test ├── kotlin └── tech │ └── pronghorn │ └── http │ ├── HttpRequestParseTests.kt │ ├── HttpResponseHeaderValueTests.kt │ └── HttpUrlParseTests.kt └── resources ├── logback.xml └── pronghorn.properties /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/README.md -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/gradlew.bat -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'server' 2 | -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/HttpRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/HttpRequest.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/HttpResponse.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/HttpResponse.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/HttpResponseHeaderValue.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/HttpResponseHeaderValue.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/HttpResponseHeaderValuePair.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/HttpResponseHeaderValuePair.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/HttpResponses.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/HttpResponses.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/ResponseContent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/ResponseContent.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/AsciiConstants.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/AsciiConstants.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/CommonContentEncodings.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/CommonContentEncodings.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/CommonContentTypes.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/CommonContentTypes.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpMethod.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpMethod.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpRequestHeader.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpRequestHeader.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpRequestParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpRequestParser.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpResponseCode.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpResponseCode.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpResponseHeader.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpResponseHeader.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpUrl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpUrl.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpUrlParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpUrlParser.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/HttpVersion.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/HttpVersion.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/http/protocol/QueryParam.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/http/protocol/QueryParam.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/ConnectionDistributionStrategy.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/ConnectionDistributionStrategy.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/HttpServer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/HttpServer.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/HttpServerConnection.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/HttpServerConnection.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/HttpServerWorker.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/HttpServerWorker.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/ReusePort.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/ReusePort.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/bufferpools/ManagedByteBuffer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/bufferpools/ManagedByteBuffer.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/bufferpools/OneUseByteBufferAllocator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/bufferpools/OneUseByteBufferAllocator.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/bufferpools/ReusableBufferPoolManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/bufferpools/ReusableBufferPoolManager.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/config/HttpServerConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/config/HttpServerConfig.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/requesthandlers/DirectHttpRequestHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/requesthandlers/DirectHttpRequestHandler.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/requesthandlers/HttpRequestHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/requesthandlers/HttpRequestHandler.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/requesthandlers/StaticHttpRequestHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/requesthandlers/StaticHttpRequestHandler.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/selectionhandlers/AcceptHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/selectionhandlers/AcceptHandler.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/selectionhandlers/HttpSocketHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/selectionhandlers/HttpSocketHandler.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/services/ConnectionAcceptService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/services/ConnectionAcceptService.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/services/ConnectionReadService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/services/ConnectionReadService.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/services/HttpRequestHandlerService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/services/HttpRequestHandlerService.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/services/ResponseWriterService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/services/ResponseWriterService.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/server/services/ServerConnectionCreationService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/server/services/ServerConnectionCreationService.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/ByteUnits.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/ByteUnits.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/GzipUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/GzipUtils.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/IntAsStringUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/IntAsStringUtils.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/ServerUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/ServerUtils.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/ByteBacked.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/ByteBacked.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/ByteBackedFinder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/ByteBackedFinder.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/DifferentiatedFinder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/DifferentiatedFinder.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/Equals.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/Equals.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/FinderGenerator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/FinderGenerator.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/HashFinder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/HashFinder.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/LengthPartitionedFinder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/LengthPartitionedFinder.kt -------------------------------------------------------------------------------- /src/main/kotlin/tech/pronghorn/util/finder/SequentialFinder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/main/kotlin/tech/pronghorn/util/finder/SequentialFinder.kt -------------------------------------------------------------------------------- /src/test/kotlin/tech/pronghorn/http/HttpRequestParseTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/test/kotlin/tech/pronghorn/http/HttpRequestParseTests.kt -------------------------------------------------------------------------------- /src/test/kotlin/tech/pronghorn/http/HttpResponseHeaderValueTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/test/kotlin/tech/pronghorn/http/HttpResponseHeaderValueTests.kt -------------------------------------------------------------------------------- /src/test/kotlin/tech/pronghorn/http/HttpUrlParseTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/test/kotlin/tech/pronghorn/http/HttpUrlParseTests.kt -------------------------------------------------------------------------------- /src/test/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/test/resources/logback.xml -------------------------------------------------------------------------------- /src/test/resources/pronghorn.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pronghorn-tech/server/HEAD/src/test/resources/pronghorn.properties --------------------------------------------------------------------------------