From d5092397c5925398a67095ae44527450b4699577 Mon Sep 17 00:00:00 2001 From: Bryan Mwangi <62949543+BryanMwangi@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:20:29 +0200 Subject: [PATCH] Added Go Pine framework --- frameworks/Go/pine/README.md | 11 ++++++++++ frameworks/Go/pine/benchmark_config.json | 26 ++++++++++++++++++++++ frameworks/Go/pine/pine.dockerfile | 10 +++++++++ frameworks/Go/pine/src/go.mod | 5 +++++ frameworks/Go/pine/src/go.sum | 2 ++ frameworks/Go/pine/src/main.go | 28 ++++++++++++++++++++++++ 6 files changed, 82 insertions(+) create mode 100755 frameworks/Go/pine/README.md create mode 100755 frameworks/Go/pine/benchmark_config.json create mode 100644 frameworks/Go/pine/pine.dockerfile create mode 100644 frameworks/Go/pine/src/go.mod create mode 100644 frameworks/Go/pine/src/go.sum create mode 100644 frameworks/Go/pine/src/main.go diff --git a/frameworks/Go/pine/README.md b/frameworks/Go/pine/README.md new file mode 100755 index 00000000000..1307a047c2c --- /dev/null +++ b/frameworks/Go/pine/README.md @@ -0,0 +1,11 @@ +# Pine Benchmarking Test + +## Test URLs + +### JSON + +http://localhost:8080/json + +### PLAINTEXT + +http://localhost:8080/plaintext diff --git a/frameworks/Go/pine/benchmark_config.json b/frameworks/Go/pine/benchmark_config.json new file mode 100755 index 00000000000..6c605348103 --- /dev/null +++ b/frameworks/Go/pine/benchmark_config.json @@ -0,0 +1,26 @@ +{ + "framework": "pine", + "tests": [ + { + "default": { + "json_url": "/json", + "plaintext_url": "/plaintext", + "port": 8080, + "approach": "Realistic", + "classification": "Micro", + "database": "None", + "framework": "Pine", + "language": "Go", + "flavor": "None", + "orm": "None", + "platform": "None", + "webserver": "None", + "os": "Linux", + "database_os": "Linux", + "display_name": "Pine", + "notes": "", + "versus": "go" + } + } + ] +} diff --git a/frameworks/Go/pine/pine.dockerfile b/frameworks/Go/pine/pine.dockerfile new file mode 100644 index 00000000000..4517e2bd98d --- /dev/null +++ b/frameworks/Go/pine/pine.dockerfile @@ -0,0 +1,10 @@ +FROM docker.io/golang:1.23 + +COPY ./src /pine +WORKDIR /pine + +RUN go mod download + +EXPOSE 8080 + +CMD go run . diff --git a/frameworks/Go/pine/src/go.mod b/frameworks/Go/pine/src/go.mod new file mode 100644 index 00000000000..6b8dddc4972 --- /dev/null +++ b/frameworks/Go/pine/src/go.mod @@ -0,0 +1,5 @@ +module pine + +go 1.23.0 + +require github.com/BryanMwangi/pine v1.0.6 diff --git a/frameworks/Go/pine/src/go.sum b/frameworks/Go/pine/src/go.sum new file mode 100644 index 00000000000..f28dc6678fd --- /dev/null +++ b/frameworks/Go/pine/src/go.sum @@ -0,0 +1,2 @@ +github.com/BryanMwangi/pine v1.0.6 h1:35JN1FQkStoCikeVQJ2423mO5STLNEPkA/AgnjslAmg= +github.com/BryanMwangi/pine v1.0.6/go.mod h1:j6+gT+N2HeeJHc9Z60rUOnEmNC+s/Gdmh2e9oB/eScI= diff --git a/frameworks/Go/pine/src/main.go b/frameworks/Go/pine/src/main.go new file mode 100644 index 00000000000..2f263adebcc --- /dev/null +++ b/frameworks/Go/pine/src/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "log" + + "github.com/BryanMwangi/pine" +) + +func plaintextHandler(c *pine.Ctx) error { + c.Set("Server", "Pine") + return c.SendString("Hello, World!") +} + +func jsonHandler(c *pine.Ctx) error { + c.Set("Server", "Pine") + return c.JSON(map[string]string{ + "message": "Hello, World!", + }) +} + +func main() { + app := pine.New() + app.Get("/plaintext", plaintextHandler) + app.Get("/json", jsonHandler) + + // Start the server on port 3000 + log.Fatal(app.Start(":8080")) +}