Projects that use Express and other major Node.js HTTP libraries should work out of the box.

If you run into bugs, please file an issue in Bun's repo, not the library. It is Bun's responsibility to address Node.js compatibility issues.

import express from "express";

const app = express();
const port = 8080;

app.get("/", (req, res) => {
  res.send("Hello World!");

app.listen(port, () => {
  console.log(`Listening on port ${port}...`);

Bun implements the node:http and node:https modules that these libraries rely on. These modules can also be used directly, though Bun.serve is recommended for most use cases.

Note — Refer to the Runtime > Node.js APIs page for more detailed compatibility information.

import * as http from "node:http";

  .createServer(function (req, res) {
    res.write("Hello World!");