For Hono and Elysia, bun is used as the runtime
Test Machine is Ubuntu 24.04, i7-13700k, 24 logical cores
| Framework | Score |
|---|---|
| gin hello | 755,416 |
| hono | 199,423 |
| import { Cause, Effect, Layer, Logger } from "effect"; | |
| import { NodeRuntime } from "@effect/platform-node"; | |
| import { DevTools } from "@effect/experimental"; | |
| import { NodeSdk } from "@effect/opentelemetry"; | |
| import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base"; | |
| import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; | |
| import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs"; | |
| import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http"; | |
| import { trace, context } from "@opentelemetry/api"; |
| package main | |
| import ( | |
| "log" | |
| "os" | |
| "strings" | |
| "github.com/pocketbase/dbx" | |
| "github.com/pocketbase/pocketbase" | |
| "github.com/pocketbase/pocketbase/apis" |
| // https://datasets.imdbws.com/name.basics.tsv.gz | |
| use anyhow::{Context, Result}; | |
| use csv::ReaderBuilder; | |
| use rusqlite::{params, Connection}; | |
| use std::time::Instant; | |
| fn main() -> Result<()> { | |
| let start = Instant::now(); | |
| // Create SQLite database and table |
| import Cocoa | |
| import Foundation | |
| class AppSwitchMonitor { | |
| let workspace = NSWorkspace.shared | |
| var observers: [NSObjectProtocol] = [] | |
| func startMonitoring() { | |
| // Monitor active application changes | |
| let appObserver = workspace.notificationCenter.addObserver( |
| // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. | |
| /// <reference lib="esnext" /> | |
| /// <reference lib="deno.net" /> | |
| /** Deno provides extra properties on `import.meta`. These are included here | |
| * to ensure that these are still available when using the Deno namespace in | |
| * conjunction with other type libs, like `dom`. | |
| * | |
| * @category Platform |
| const bundle = await Bun.file("dist/index.js").text() | |
| const lines = bundle.split("\n") | |
| // console.log(lines); | |
| const commentLineIndices = lines | |
| .map((line, index) => (line.trim().startsWith("//") ? index : -1)) | |
| .filter((index) => index !== -1) | |
| console.log(commentLineIndices) |
| { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string" | |
| }, | |
| "version": { | |
| "type": "string" | |
| }, | |
| "description": { |
| [package] | |
| name = "axum-tonic" | |
| version = "0.1.0" | |
| edition = "2021" | |
| [dependencies] | |
| tonic = "0.11" | |
| prost = "0.12" | |
| tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } |
| [package] | |
| name = "rust_http_file_upload" | |
| version = "0.1.0" | |
| edition = "2021" | |
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | |
| [dependencies] | |
| actix = "0.13.1" | |
| actix-multipart = "0.6.1" |