Projectile creates beautiful Scala code from your Postgres database, GraphQL queries, or Thrift definitions.
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
Projectile monitors your Thrift IDL, and works with Scrooge to create wrapper classes that support serialization, tracing, and Scala Futures
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!