Projectile creates beautiful Scala code from your Postgres database, GraphQL queries, or Thrift definitions.

Code Generation

Postgres Database

For each table and view, Projectile can generate:

  • Case classes with Circe JSON serialization using Scala representations of all database types (including Enumeratum enums)
  • Strongly-typed database queries for all CRUD operations and indexed queries, along with an asynchronous service interface
  • Slick or Doobie bindings, supporting all Postgres types and pre-built common queries
  • A full-featured Sangria GraphQL interface, supporting batched relationship traversal and a lovely IDE and Schema visualizer
  • Play framework controllers and views exposing an Openapi/Swagger endpoint and a beautiful admin interface supporting local or OAuth login

Thrift IDL

Projectile monitors your Thrift IDL, and works with Scrooge to create wrapper classes that support serialization, tracing, and Scala Futures

GraphQL Queries

Projectile monitors your GraphQL schema and queries, and generates Scala case classes with input and result serialization


The code is licensed under CC0-1.0

You can basically do whatever you want with the code, no attribution required. Make it your own!