Dartcore

Dartcore is a minimalist, yet powerful HTTP server framework for the Dart programming language. It provides a simple API for routing and handling HTTP requests, making it perfect for lightweight (not very, can be used for complex ones that will never crash) web applications, APIs, or microservices.

Features

  • Simple and intuitive routing
  • Lightweight and fast
  • Minimal dependencies
  • Easy to use for building RESTful APIs
  • Customizable request handling
  • Looks a bit like Flask :)

Getting Started

Installation

Library:

First, ensure you have the Dart SDK installed. Then, add dartcore to your pubspec.yaml file as a dependency.

dependencies:
  dartcore: any

Run dart pub get to install dependencies.

CLI:

You can install it by running the command:

dart pub activate global dartcore

and then try,

dartcore --version

Example Usage

Follow these simple steps to set up your Dartcore server.

1. Create a New Instance of Dartcore

import 'package:dartcore/dartcore.dart' as dartcore;
// "" is the config file path
final app = dartcore.App(debug: true); // replace true with false in production mode! this specifies Debugging mode

2. Add Routes

Use the route method to handle incoming HTTP requests. Specify the HTTP method (e.g., GET, POST, etc.) and the route.

app.route('GET', '/', (req, res) {
  res.send("Hello from Dartcore!", ContentType.text);
});

app.route('GET', '/hello', (req, res) {
  res.json({"from":"Dartcore","message":"Hello World!"});
});

3. Start the Server

Use the start method to start the server.

app.start(port: 8080);

Optional Parameters:

  • (String) address: The server's IP address (default: 0.0.0.0 --> All IP Addresses).
  • (int) port: The port on which the server listens (default: 8080).

Full Example

See the full example on pub.dev!

Running the Server

Run your Dart server with:

dart run

Visit http://127.0.0.1:8080/, http://localhost:8080/, or http://YOUR_PRIVATE_IP:8080/ to see the server in action!


Contributing

Contributions are welcome! Please feel free to submit issues and pull requests to help improve DartCore.


License

This project is licensed under the MIT License - see the LICENSE file for details.

Git repo Structure

REPO | │ Dockerfile == Example Dockerfile │ LICENSE == MIT License │ pubspec.yaml == Packages │ README.md == This │ ├───example == Example project │ │ config.json │ │ main.dart │ │ │ └───templates │ child.html │ hello.html │ └───lib == Library, used in apps