Skip to content
This repository has been archived by the owner on Mar 15, 2023. It is now read-only.
/ opine Public archive
forked from cmorten/opine

Fast, minimalist web framework for Deno ported from ExpressJS.

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE.md
MIT
EXPRESS_LICENSE.md
Notifications You must be signed in to change notification settings

Feelzor/opine

 
 

Deno reading an opinionated book

Opine

Fast, minimalist web framework for Deno ported from ExpressJS.

Current version Current test status Deno docs PRs are welcome Opine issues Opine stars Opine forks Opine license Opine is maintained Published on nest.land

Opine latest /x/ version Minimum supported Deno version Opine dependency count Opine dependency outdatedness Opine cached size


Table of Contents

Getting Started

import { opine } from "https://deno.land/x/opine@2.2.0/mod.ts";

const app = opine();

app.get("/", function (req, res) {
  res.send("Hello World");
});

app.listen(
  3000,
  () => console.log("server has started on http://localhost:3000 🚀"),
);

Installation

This is a Deno module available to import direct from this repo and via the Deno Registry.

Before importing, download and install Deno.

You can then import Opine straight into your project:

import { opine } from "https://deno.land/x/opine@2.2.0/mod.ts";

Opine is also available on nest.land, a package registry for Deno on the Blockchain.

import { opine } from "https://x.nest.land/opine@2.2.0/mod.ts";

Features

  • Robust routing
  • Focus on high performance
  • Large selection of HTTP helpers including support for downloading / sending files, etags, Content-Disposition, cookies, JSONP etc.
  • Support for static serving of assets
  • View system supporting template engines
  • Content negotiation
  • Compatible with SuperDeno for easy server testing
  • Supports HTTP proxy middleware with opine-http-proxy

Documentation

Quick Start

The quickest way to get started with Opine is to utilize the Opine CLI to generate an application as shown below:

Install the executable. The executable's major version will match Opine's:

deno install -f -q --allow-read --allow-write --allow-net --unstable https://deno.land/x/opinecli@2.0.0/opine-cli.ts

And follow any suggestions to update your PATH environment variable.

Create the app:

opine-cli --view=ejs hello-deno && cd hello-deno

Start your Opine app at http://localhost:3000/:

deno run --allow-net --allow-read --allow-env mod.ts

Philosophy

The Express philosophy is to provide small, robust tooling for HTTP servers, making it a great solution for single page applications, web sites, hybrids, or public HTTP APIs.

Opine will aim to achieve these same great goals, focussing on providing equivalent robust tooling and features.

Once Deno's Node compatibility layer matures sufficiently to support Express out of the box, Opine will likely operate in maintenance mode.

Examples

To run the examples, you have two choices:

  1. Run the example using Deno directly from GitHub, for example:

    deno run --allow-net --allow-read https://raw.githubusercontent.com/cmorten/opine/main/examples/hello-world/index.ts
  2. Clone the Opine repo locally:

    git clone git://github.com/cmorten/opine.git --depth 1
    cd opine

    Then run the example you want:

    deno run --allow-net --allow-read ./examples/hello-world/index.ts

All the examples contain example commands in their READMEs to help get you started for either of the above methods.

Contributing

Contributing guide


License

There are several third party modules that have been ported into this module. Each third party module has maintained it's license and copyrights. The only exception is for Express, from which this entire module has been ported, whose license and copyrights are available at EXPRESS_LICENSE in the root of this repository, and cover all files within the source directory which not been explicitly licensed otherwise.

All modules adapted into this module are licensed under the MIT License.

Opine is licensed under the MIT License.

Icon designed and created by Hannah Morten.

About

Fast, minimalist web framework for Deno ported from ExpressJS.

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE.md
MIT
EXPRESS_LICENSE.md

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.6%
  • Other 0.4%