Skip to main content

Emi

beta

Compiler

Emi Backend-For-Frontend code generation tool, converting project specification to Backend and Client boilerplate.

About Emi

Emi is a general purpose tool, to create client sdks, and boiler code signature for backend API. You'll write a single yaml file, and it will turn into code for backend, and client side, for different targets, such as JavaScript, TypeScript, Swift, Kotlin, Golang and so on. It's a great alternative to mixing multiple tools to generated sdks from OpenAPI specs.

Key Features

  • Simple yaml definition, strong data types supported
  • Both backend and client code generator, so api signatures will always match, generated by single tool.
  • Separate JavaScript and TypeScript compiler, ready to work without transpiling
  • Class generation in JavaScript for DTOs, prevents data type mismatches using typescript only interfaces
  • Golang full backend and client code generated
  • Extends the HTTP api, and can be ejected anytime.
  • Full mobility on responses, to customize if necessary
  • Adds typescript layer for fetch on browser, to make it type-safe, and returning class instances automatically.
  • Available via wasm, and also common operating systems CLI
  • Full reactive programming support, specially on WebSockets in Golang and JavaScript
  • Type-safe headers, query params, nested query params, unique features to Emi
  • Nullability, collections, objects, array support as first citizen
  • Envelope system for API responses, separating the content from general wrapper, such as google json style guide
  • Swift dto generation, both for apple and other operating systems
  • Kotlin dto generation, with full nullability support on DTOs