Catalyst milestone 1: Research

Outputs

  • A report summarizing user interviews and containing a qualitative analysis of the discovered use cases.
    • STATUS: Done (#17)
    • An interview with 3 MLabs engineers was performed (1.5h) who's work span multiple Cardano dApp projects. Their feedback is made available in the repo.
    • Additionally, a survey was sent out to MLabs engineers and their feedback is made available in the repo.
  • An architecture design document.
    • STATUS: Done (#17)
    • Extensive documentation on design, compiler and codegen is made available in the repo.
  • A language specification document elaborating on the data type model features.
    • STATUS: Done (#17)
    • Extensive documentation on design, compiler and codegen is made available in the repo.
  • A related work document comparing the proposed technology via a feature matrix with others in the same space.
    • STATUS: Done (#17, #18)
    • Document comparing different schema techologies to LambdaBuffers is made available in the repo
  • An initial compiler implementation that performs some basic checks in accordance with the language specification.

Acceptance Criteria

  • At least 3 users/projects have been interviewed about their desired use case for this technology.
    • An interview with 3 MLabs engineers was performed (1.5h) who's work span multiple Cardano dApp projects. Their feedback is made available in the repo.
    • Additionally, a survey was sent out to MLabs engineers and their feedback is made available in the repo.
  • The architecture design document is completed and available in the project repository.
  • The initial compiler implementation is completed, capturing SOME of the intended language semantics as described in the Language Specification

Evidence of Milestone Completion

  • Completed and reviewed design document is available in the project repository.
  • Completed and reviewed initial version of the compiler command line tool made available in the project repository.
    • The Frontend CLI called lambda-buffers-frontend-cli is made available in the repo and is currently able to parse, validate and format .lbf documents that contain the LambdaBuffers type modules:
lambda-buffers/lambda-buffers-frontend$ cabal run 
Usage: lambda-buffers-frontend-cli COMMAND

  LambdaBuffers Frontend command-line interface tool

Available options:
  -h,--help                Show this help text

Available commands:
  compile                  Compile a LambdaBuffers Module (.lbf)
  format                   Format a LambdaBuffers Module (.lbf)

There's ongoing work to integrate the Compiler CLI in the Frontend CLI.

  • Test case: Compiler is able to validate a schema that uses a subset of types and capabilities from the spec.

References