Awesome Open Source
Awesome Open Source

A Kotlin/Java API framework for Google Appengine

Any help is appreciated! Comments, suggestions, issues, PR's! Give us a star to help!

Build Status Maven Central



  • Scaffolding
  • Model centric
  • CRUD Routes
  • Query Routes
  • Custom Routes
  • Cache System
  • Transformers
  • Security Shields
  • Lifecycle Hooks
  • Asynchronous Pipes
  • Java or Kotlin
  • App Engine or Postgres


  • Fluent API
  • Node or Web
  • Promises
  • Class extension


Complete YAWP! Guides.

Getting Started

  1. At the command prompt, create a new YAWP! Kotlin application:

     $ mvn archetype:generate \
         -DarchetypeGroupId=io.yawp \
         -DarchetypeArtifactId=yawp \
         -DarchetypeVersion=LATEST \
         -DgroupId=yawpapp \
         -DartifactId=yawpapp \
         -Dversion=1.0-SNAPSHOT \
  2. Change directory to yawpapp and start the yawp development server:

     $ cd yawpapp
     $ mvn yawp:devserver
  3. Using a browser, go to http://localhost:8080/api to check if everything is OK.

  4. Using a scaffolder, create a simple endpoint model:

     $ mvn yawp:endpoint -Dmodel=person


    @Endpoint(path = "/people")
    class Person(@Id
                 var id: IdRef<Person>)

    Try it:

     $ curl http://localhost:8080/api/people

    From Javascript:

     $ npm install yawp --save
    class Person extends yawp('/people') {
        save() {
    const person = new Person({name: 'Janes'});  
  5. Follow the guidelines to start developing your API:


Everyone willing to contribute with YAWP! is welcome. To start developing you will need an environment with:

  • JDK 1.8+
  • Maven 3.3+
  • PostgreSQL 9.4+
  • phantomjs 2+

For postgres, you need to create a database/user with access from your Unix user (you need to be able to run psql with no args). A simple tutorial for Arch can be found here.

Phantomjs can be installed from pacman on Arch.

Then follow the travis-ci build script to get your build working.


YAWP! is released under the MIT license.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (71,009
java (31,780
nodejs (3,876
api (1,763
cloud (512
gcp (139
appengine (26