From Java:
@SharedType
record User(String name, int age, String email) {}
To Typescript:
export interface User {
name: string;
age: number;
email: string;
}
Go:
type User struct {
Name string
Age int
Email string
}
Rust:
pub struct User {
name: String,
age: i32,
email: String,
}
- Java8 compatible; Java 9 module (Jigsaw) compatible.
- Generics support.
- Compile-time constant support.
- Client source dependency is only
@SharedType
retained at source code level. - SharedType annotation processor has only 1 dependency: mustache.
- Parsing takes milliseconds with
-proc:only
. - Intuitive defaults, put
@SharedType
and there you go. Global + class level options.
Cause Chung ([email protected]), Jeremy Zhou ([email protected])