Simple Serverless Web Apps

Osiris is a library for building and deploying serverless web apps on Amazon Web Services, with a focus on simplicity and ease of use. It provides a simple way to build the application and tools to deploy it to AWS.

An application built with Osiris is deployed to AWS as a Lambda function and an API Gateway API. Configuration is generated for CloudFormation to define the application resources.

Osiris runs on the JVM and provides a DSL written in Kotlin. It is open source and is released under the Apache 2.0 license.

The simplest application you can build with Osiris looks something like this:

val api = api<ComponentsProvider> {
    get("/helloworld") { req ->
        "hello, world!"
    }
}

Features

DSL

Osiris provides a familiar DSL for defining HTTP endpoints, inspired by libraries like Sinatra and SparkJava.

Tooling

Osiris provides plugins for Maven and Gradle that:

  • Create the initial project
  • Build the project artifacts
  • Generate the AWS configuration
  • Deploy the application to AWS

Local Server

Osiris includes a local server so applications can be developed and debugged without being deployed to AWS.

Simple Development, Serverless Deployment

Osiris aims to make building and deploying a serverless web application as easy as building a traditional web app.

AWS Lambda and API Gateway are an excellent platform for hosting web applications. They scale up automatically to handle load and scale down to zero when they are not needed.

Unfortunately they also have a steep learning curve and require expertise and a lot of configuration to do something that would normally be possible in a few lines of code.

The Osiris DSL allows a REST API to be defined in a simple, familiar way, and the Maven or Gradle plugin generates all the configuration needed to define the application in AWS.

The plugin also builds the application artifacts, uploads them to AWS and deploys the application in a single operation.

Osiris allows you to go from an empty directory to a deployed application in two Maven commands.

Osiris also provides a local server to run your application. This allows a much faster development cycle, local debugging and provides a development experience similar to building a traditional web app.

 

Code, Documentation, Examples

A user guide is available on the GitHub project wiki. Please see Getting Started.

Osiris is open source and licenced under the Apache 2 licence. The code is available on GitHub

The Osiris Examples project contains a few simple applications built with Osiris that demonstrate how to accomplish common tasks. The code is available on GitHub.