Ship

Book · A language for shipping

A language for shipping

Draft

Meet Ship through a complete application boundary.

On this page · 2 sections

Ship is an application language. Databases, deployments, HTTP, services, tests, and browser programs belong to the language and its tooling rather than living in disconnected configuration.

A whole server

In a server target's init.shp, this is a complete native HTTP server. The target, port, routes, methods, and responses are checked together.

server(Native) {
  port = 8080;
  route health = #get(/health) -> text("ok");
  route home = #get(/) -> text("Hello from Ship");
}

ship dev builds and serves it. The same declarations remain available to checking, development tooling, and deployment instead of being rediscovered by separate frameworks.

Reading this book

This is not a guide to programming. It assumes you already know how to program and concentrates on how Ship expresses application systems.

Start with inference, then continue through functions and pattern matching. More reference-oriented topics follow those chapters.

Examples declared test(Pending) show decided behavior that Ship does not support yet. Each one says what stops it today, and becomes an ordinary test once it passes.