edelweiss

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 12, 2022 License: Apache-2.0, MIT, Apache-2.0, + 1 more

README

Edelweiss: Decentralized Protocol Compiler

Edelweiss is a code-generating compiler. Currently, it supports:

  • a comprehensive type system for modeling data
  • service and method definitions
  • Go language code-generation of data types and associated fast, static encoders and decoders to and from the IPLD data model
  • Go language code-generation of RPC services based on a DAGJSON-over-HTTP networking stack
  • the ability to rapidly add user-defined code-generating backends for custom RPC networking stacks

For a detailed longer-term roadmap and planned features refer to the Protocol Compiler Roadmap 2022.

Documentation

The current state of the language and how to use the compiler is covered in the Edelweiss for users slides. Examples of the canonical representation of Edelweiss types are provided in Representations of types.

A complete working example — which defines a greeting service API, and implements a sample client and server cli tools — is provided in this repo. The resulting generated code is also included in the repo for your viewing convenience.

Projects using Edelweiss

Currently, Edelweiss is in the process of being onboarded as the RPC framework for the Delegated Routing API of IPFS and Hydra nodes.

Directories

Path Synopsis
blueprints
examples
util
indent
Package indent indents lines of text.
Package indent indents lines of text.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL