Search packages, repositories and app categories

GitHub repositorycodekeyz/pharaoh

pharaoh

Minimalist web-server library for Dart

pharaoh project cover
Stars
144
Forks
18
Last push (UTC)
Sep 11, 2025
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

Pharaoh 🏇

Test Pipeline codecov Pub Version likes melos

Features

  • Robust routing
  • Focus on high performance
  • Super-high test coverage
  • HTTP helpers (just like ExpressJS)
  • Interoperability with Shelf Middlewares See here

Installing:

In your pubspec.yaml

dependencies:
  pharaoh: ^0.0.6 # requires Dart => ^3.0.0

Basic Usage:

import 'package:pharaoh/pharaoh.dart';

void main() async {

  final guestRouter = Pharaoh.router
    ..get('/user', (req, res) => res.ok("Hello World"))
    ..post('/post', (req, res) => res.json({"mee": "moo"}))
    ..put('/put', (req, res) => res.json({"pookey": "reyrey"}));

  final app = Pharaoh()
    ..use((req, res, next) => next());
    ..get('/foo', (req, res) => res.ok("bar"))
    ..group('/guest', guestRouter);

  await app.listen();
}

See the Pharaoh Examples directory for more practical use-cases.

Philosophy

Pharaoh emerges as a backend framework, inspired by the likes of ExpressJS, to empower developers in building comprehensive server-side applications using Dart. The driving force behind Pharaoh's creation is a strong belief in the potential of Dart to serve as the primary language for developing the entire architecture of a company's product. Just as the JavaScript ecosystem has evolved, Pharaoh aims to contribute to the Dart ecosystem, providing a foundation for building scalable and feature-rich server-side applications.

Contributors ✨

The Pharaoh project welcomes all constructive contributions. Contributions take many forms, from code for bug fixes and enhancements, to additions and fixes to documentation, additional tests, triaging incoming pull requests and issues, and more!

Contributing Code To Pharaoh 🛠

To setup and contribute to Pharaoh, Install Melos as a global package via pub.dev;

$ dart pub global activate melos

then initialize the workspace using the command below

$ melos bootstrap
Running Tests

To run the tests, you can either run dart test in the package you're working on or use the command below to run the full test suite:

$ melos run tests

People

List of all contributors

License

MIT

Chima Precious GitHub avatar
GitHub author

Chima Precious ↗

Software Engineer

Remote
LanguagesDartHTML

Categories

Dependencies used

Dependency list 1 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗