Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Dart HTTP webserver, providing server side session and routing and static file serving.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 example
Octocat-spinner-32 lib
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENCE
Octocat-spinner-32 README.md
Octocat-spinner-32 pubspec.yaml
README.md

CrimsonHttp server for Dart

Introduction

Loosely inspired upon sencha/connect for node.js

Status: Alpha

This code is alpha and might not be safe for production servers.

Example

#import("dart:io");
#import("dart:utf");
#import('package:crimsonhttp/crimson.dart');

void main() {
  CrimsonHttpServer server = new CrimsonHttpServer();

  CrimsonModule sampleModule = new CrimsonModule(server);
  sampleModule.handlers
                    .addEndpoint(new StaticFile("./test/public/"))
                    .addEndpoint(new StaticFile("./test/sandbox/"));

  server.modules["*"] = sampleModule;
  server.listen("0.0.0.0", 8082);
}

Getting Started

Create a Dart project and add a pubspec.yaml file to it

dependencies:
  crimsonhttp:
    git: https://github.com/chrisbu/CrimsonHttp.git

and run pub install to install crimson (including its dependencies). Now add import

#import('package:crimsonhttp/crimson.dart');

TODO

  • Lots, especially tidy up CookieSession and StaticFile, and add Route.
  • Please treat all of this as pre-alpha.
  • It's not secure in the slightest, and the StaticFile handler alone will probably allow users to browse your pc!

Filters

  • CookieSession: sets a sessioncookie - just ported at the moment and not yet tested. Treat as pre-alpha.

Endpoints

  • Favicon: Serves a favicon from either the default ./favicon.ico or ./public/favicon.ico, or some specified location.
  • StaticFile: serves static files from the path provided in the constructor. Simply appends the request.uri onto whatever path you provide in, and tries to load it. Very insecure.
  • Route: executes a dart method in resposne to matching a path + method, or a matching function
Something went wrong with that request. Please try again.