A very performant and light (2mb in memory) link shortener and tracker. Written in Rust and React and uses Postgres/SQLite.

yolo commit

+175
test/.gitignore
···
···
+
# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
+
+
# Logs
+
+
logs
+
_.log
+
npm-debug.log_
+
yarn-debug.log*
+
yarn-error.log*
+
lerna-debug.log*
+
.pnpm-debug.log*
+
+
# Caches
+
+
.cache
+
+
# Diagnostic reports (https://nodejs.org/api/report.html)
+
+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
+
+
# Runtime data
+
+
pids
+
_.pid
+
_.seed
+
*.pid.lock
+
+
# Directory for instrumented libs generated by jscoverage/JSCover
+
+
lib-cov
+
+
# Coverage directory used by tools like istanbul
+
+
coverage
+
*.lcov
+
+
# nyc test coverage
+
+
.nyc_output
+
+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+
+
.grunt
+
+
# Bower dependency directory (https://bower.io/)
+
+
bower_components
+
+
# node-waf configuration
+
+
.lock-wscript
+
+
# Compiled binary addons (https://nodejs.org/api/addons.html)
+
+
build/Release
+
+
# Dependency directories
+
+
node_modules/
+
jspm_packages/
+
+
# Snowpack dependency directory (https://snowpack.dev/)
+
+
web_modules/
+
+
# TypeScript cache
+
+
*.tsbuildinfo
+
+
# Optional npm cache directory
+
+
.npm
+
+
# Optional eslint cache
+
+
.eslintcache
+
+
# Optional stylelint cache
+
+
.stylelintcache
+
+
# Microbundle cache
+
+
.rpt2_cache/
+
.rts2_cache_cjs/
+
.rts2_cache_es/
+
.rts2_cache_umd/
+
+
# Optional REPL history
+
+
.node_repl_history
+
+
# Output of 'npm pack'
+
+
*.tgz
+
+
# Yarn Integrity file
+
+
.yarn-integrity
+
+
# dotenv environment variable files
+
+
.env
+
.env.development.local
+
.env.test.local
+
.env.production.local
+
.env.local
+
+
# parcel-bundler cache (https://parceljs.org/)
+
+
.parcel-cache
+
+
# Next.js build output
+
+
.next
+
out
+
+
# Nuxt.js build / generate output
+
+
.nuxt
+
dist
+
+
# Gatsby files
+
+
# Comment in the public line in if your project uses Gatsby and not Next.js
+
+
# https://nextjs.org/blog/next-9-1#public-directory-support
+
+
# public
+
+
# vuepress build output
+
+
.vuepress/dist
+
+
# vuepress v2.x temp and cache directory
+
+
.temp
+
+
# Docusaurus cache and generated files
+
+
.docusaurus
+
+
# Serverless directories
+
+
.serverless/
+
+
# FuseBox cache
+
+
.fusebox/
+
+
# DynamoDB Local files
+
+
.dynamodb/
+
+
# TernJS port file
+
+
.tern-port
+
+
# Stores VSCode versions used for testing VSCode extensions
+
+
.vscode-test
+
+
# yarn v2
+
+
.yarn/cache
+
.yarn/unplugged
+
.yarn/build-state.yml
+
.yarn/install-state.gz
+
.pnp.*
+
+
# IntelliJ based IDEs
+
.idea
+
+
# Finder (MacOS) folder config
+
.DS_Store
+15
test/README.md
···
···
+
# test
+
+
To install dependencies:
+
+
```bash
+
bun install
+
```
+
+
To run:
+
+
```bash
+
bun run index.ts
+
```
+
+
This project was created using `bun init` in bun v1.2.0. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
+32
test/bun.lock
···
···
+
{
+
"lockfileVersion": 1,
+
"workspaces": {
+
"": {
+
"name": "test",
+
"dependencies": {
+
"k6": "^0.0.0",
+
},
+
"devDependencies": {
+
"@types/bun": "latest",
+
},
+
"peerDependencies": {
+
"typescript": "^5.0.0",
+
},
+
},
+
},
+
"packages": {
+
"@types/bun": ["@types/bun@1.2.0", "", { "dependencies": { "bun-types": "1.2.0" } }, "sha512-5N1JqdahfpBlAv4wy6svEYcd/YfO2GNrbL95JOmFx8nkE6dbK4R0oSE5SpBA4vBRqgrOUAXF8Dpiz+gi7r80SA=="],
+
+
"@types/node": ["@types/node@22.10.10", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww=="],
+
+
"@types/ws": ["@types/ws@8.5.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw=="],
+
+
"bun-types": ["bun-types@1.2.0", "", { "dependencies": { "@types/node": "*", "@types/ws": "~8.5.10" } }, "sha512-KEaJxyZfbV/c4eyG0vyehDpYmBGreNiQbZIqvVHJwZ4BmeuWlNZ7EAzMN2Zcd7ailmS/tGVW0BgYbGf+lGEpWw=="],
+
+
"k6": ["k6@0.0.0", "", {}, "sha512-GAQSWayS2+LjbH5bkRi+pMPYyP1JSp7o+4j58ANZ762N/RH/SdlAT3CHHztnn8s/xgg8kYNM24Gd2IPo9b5W+g=="],
+
+
"typescript": ["typescript@5.7.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw=="],
+
+
"undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="],
+
}
+
}
+1
test/index.ts
···
···
+
console.log("Hello via Bun!");
+39
test/mikubeam.js
···
···
+
import http from "k6/http";
+
import { check, sleep } from "k6";
+
+
// Test configuration
+
export const options = {
+
stages: [
+
{ duration: "30s", target: 50 }, // Ramp up to 50 users
+
{ duration: "1m", target: 50 }, // Stay at 50 users for 1 minute
+
{ duration: "30s", target: 100 }, // Ramp up to 100 users
+
{ duration: "1m", target: 100 }, // Stay at 100 users for 1 minute
+
{ duration: "30s", target: 0 }, // Ramp down to 0 users
+
],
+
thresholds: {
+
http_req_duration: ["p(95)<500"], // 95% of requests should be below 500ms
+
"checks{type:redirect}": ["rate>0.95"], // 95% success rate
+
},
+
};
+
+
const SHORTENED_URL = "http://localhost:8080/mikubeam";
+
+
export default function () {
+
const res = http.get(SHORTENED_URL, {
+
tags: { type: "redirect" },
+
redirects: 0, // Don't follow redirects to measure just the redirect response
+
});
+
+
// Check if we got a redirect status (307)
+
check(
+
res,
+
{
+
"status is 307": (r) => r.status === 307,
+
"has location header": (r) => r.headers["Location"] !== undefined,
+
},
+
{ type: "redirect" }
+
);
+
+
sleep(1); // Add some think time between requests
+
}
+
+14
test/package.json
···
···
+
{
+
"name": "test",
+
"module": "index.ts",
+
"type": "module",
+
"devDependencies": {
+
"@types/bun": "latest"
+
},
+
"peerDependencies": {
+
"typescript": "^5.0.0"
+
},
+
"dependencies": {
+
"k6": "^0.0.0"
+
}
+
}
+27
test/tsconfig.json
···
···
+
{
+
"compilerOptions": {
+
// Enable latest features
+
"lib": ["ESNext", "DOM"],
+
"target": "ESNext",
+
"module": "ESNext",
+
"moduleDetection": "force",
+
"jsx": "react-jsx",
+
"allowJs": true,
+
+
// Bundler mode
+
"moduleResolution": "bundler",
+
"allowImportingTsExtensions": true,
+
"verbatimModuleSyntax": true,
+
"noEmit": true,
+
+
// Best practices
+
"strict": true,
+
"skipLibCheck": true,
+
"noFallthroughCasesInSwitch": true,
+
+
// Some stricter flags (disabled by default)
+
"noUnusedLocals": false,
+
"noUnusedParameters": false,
+
"noPropertyAccessFromIndexSignature": false
+
}
+
}