What is Sunday?
Sunday is a code generator and family of client libraries for implementing generated REST clients and server stubs from RAML.
Features
Sunday focuses on implmenting a consistent set of advanced REST features across client & server libraries and languages.
The key features Sunday provides:
- Detailed Error Responses via Problems
- Efficient Notifications via Server-Sent Events
- Dynamic Content-Type Negotiation
- Alternative Request/Response Encodings
- Date/Time Data Types
- Simple & Beautiful Code
Generator
The binding technology for Sunday is the Generator which generates clients for all of Sunday's client library implementations.
In addition, the generator also supports generating server and client interfaces for JAX-RS that are customizable for a number of implementations (e.g Quarkus).
Client Libraries
Sunday provides dedicated client libraries for the following languages:
- Swift client library for Apple platforms
- macOS , iOS , iPadOS , WatchOS
- Kotlin client library for JVM platforms
- Java, Android
- TypeScript client library for Web platforms
- Browsers (Chrome , Safari , Firefox)
Concurrency
The client library implementations use the latest concurrency features of their respective languages to make their usage effeciant and enjoyable. Concurrency featuers like async
/ await
and coroutines are supported where available.
Client Generation
The Sunday code generator generates client APIs targeting the following client libraries:
Server Generation
The Sunday code generator generates server stubs for the following standards based libraries: