Code Monkey home page Code Monkey logo

logo

NHttp

An Simple web-framework for Deno and Friends.


CI JSR JSR_SCORE CODECOV DENO MIT PRS

Features

  • Focus on simple and easy to use.
  • Fast Performance. One of the fastest Frameworks.
  • Cross runtime support (Deno, Node, Bun, etc).
  • Low overhead & True handlers (no caching anything).
  • Built-in Middleware.
  • Sub router support.
  • Template engine support (jsx, ejs, nunjucks, eta, pug, ..etc).
  • Return directly on handlers.
  • Auto parses the body (json / urlencoded / multipart / raw).

See Examples

Installation

JSR

// Deno
deno add @nhttp/nhttp

// npm
npx jsr add @nhttp/nhttp

// Yarn
yarn dlx jsr add @nhttp/nhttp

// pnpm
pnpm dlx jsr add @nhttp/nhttp

// Bun
bunx jsr add @nhttp/nhttp

deno.land

import nhttp from "https://deno.land/x/nhttp/mod.ts";

Simple Usage

Create file app.ts and copy-paste this code.

import nhttp from "@nhttp/nhttp";

const app = nhttp();

app.get("/", () => {
  return "Hello, World";
});

app.get("/cat", () => {
  return { name: "cat" };
});

app.listen(8000);

Run

deno run -A app.ts

Using JSX + Htmx

Create file app.tsx and copy-paste this code.

import nhttp from "@nhttp/nhttp";
import { htmx, renderToHtml } from "@nhttp/nhttp/jsx";

const app = nhttp();

app.engine(renderToHtml);

app.use(htmx());

app.get("/", () => {
  return (
    <button hx-post="/clicked" hx-swap="outerHTML">
      Click Me
    </button>
  );
});

app.post("/clicked", () => {
  return <span>It's Me</span>;
});

app.listen(8000);

config jsx

deno.json / tsconfig.json

{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "@nhttp/nhttp/jsx"
  }
}

more docs => https://nhttp.deno.dev

Standard Lib

Like std-libs for NHttp.

Usage

// JSR
import {...} from "@nhttp/nhttp/my-libs";

// deno.land
import {...} from "https://deno.land/x/nhttp/lib/my-libs.ts";

Serve Static

import nhttp from "@nhttp/nhttp";
import serveStatic from "@nhttp/nhttp/serve-static";

const app = nhttp();

app.use(serveStatic("./my_folder"));

// with prefix
app.use(serveStatic("./my_folder", { prefix: "/assets" }));
// or
// app.use("/assets", serveStatic("./my_folder"));

// with URL
app.use(serveStatic(new URL("./my_folder", import.meta.url)));

CLI

Deno

deno run -Ar npm:create-nhttp

Npm

npm create nhttp@latest

License

MIT

nhttp's Projects

nhttp icon nhttp

An Simple web-framework for Deno and Friends.

raptor icon raptor

Fast router handler for Deno and Deno Deploy

redge icon redge

A minimal React partial-hydrations on the edge.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.