melonpan

0.1.1 • Public • Published

banner release GitHub License PRs Welcome PRs Welcome

Melonpan is a simple and minimalistic web-router designed to work with Bun, keeping performance in mind.

🤔 Why Melonpan?

  • no/minimal learning curve
  • Developer focused, you just need to focus on buisness logic
  • 0 bloat functions
  • 0 dependencies
  • 100% Typescript code
  • Blazing fast performance than node webframework alternatives

⚡️ Quickstart

import { Melonpan, MelonRouter } from "melonpan";

const melonpan = new Melonpan();
// Simple middleware definitions
melonpan.middleware((_req, ctx, next) => {
    console.log("A middleware has been hit!")
})
// Easy query params parsing!
melonpan.get("/api/:id", (_req, ctx) => {
    return ctx.json({"id": ctx.params.id}, 200);
})
// Routing done in very simple manner
melonpan.get("/" , (_req, ctx) => ctx.text("Hello world!"));

// Easy definitions of routers and handlers!
const melonRouter = new MelonRouter();
melonRouter.get("/bar", (_req, ctx) => ctx.text("this is a router", 200));
melonpan.use("/foo", melonRouter);

export default {
    port: 3000,
    fetch(req: Request){
        return melonpan.serve(req);
    }
}

🤖 Benchmarks

The following results are of:

  • Test: Bun (v0.1.11) + Melonpan (v0.1.0) Vs NodeJS (v16.13.0) + Express (v4.18.1)
  • Machine: MacBook M1 Pro 16GB RAM
  • Benchmarking tool used: Autocannon

Results

benchmark

Almost an 8x performance, thanks to Bun.

You can find the benchmark suite here

⬇️ Installation

Using Bun

  1. Install Bun
curl https://bun.sh/install | bash
  1. Add Melonpan as dependency using bun
bun add melonpan

Using Yarn

yarn add melonpan

Using NPM

npm install melonpan

🤝 Contributions

  • Feel Free to Open a PR/Issue for any feature or bug(s).
  • Make sure you follow the community guidelines.
  • Feel free to open an issue to ask a question/discuss anything about melonpan.
  • Have a feature request? Open an Issue!
  • Please ensure to run bun test before submitting your PRs!

📢 Shoutouts

Shoutout to Khyati Gupta for amazing logo and banner illustrations

License

Copyright 2022 Hemanth Krishna

Licensed under MIT License : https://opensource.org/licenses/MIT

Made with , multiple cups of coffee and some chaii

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.1
    0
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.1
    0
  • 0.1.0
    0

Package Sidebar

Install

npm i melonpan

Weekly Downloads

0

Version

0.1.1

License

MIT

Unpacked Size

429 kB

Total Files

17

Last publish

Collaborators

  • darthbenro008