2 releases

0.1.0-beta.3 Jul 15, 2023

#2222 in Encoding

MIT/Apache

17KB
389 lines

Protobuf DBML

Database Markup Language (DBML) transpiler for Protocol Buffers.

MSRV MIT or Apache 2.0 licensed unsafe forbidden

Output

Below is the example of transpiling DBML into protobuf.

Table user {
  id integer [pk]
  username varchar
  role varchar
}
//! Generated by protobuf-dbml 0.1.0-beta.2

syntax = "proto3";

message UserSchema {
  int32 id = 1;
  string username = 2;
  string role = 3;
}

How to use it?

use std::{error::Error, ffi::OsString};

use protobuf_dbml::*;

fn main() -> Result<(), Box<dyn Error>> {
  transpile(transpiler::config::Config {
    in_path: OsString::from("path/to/your/dbml.dbml"),
    out_path: OsString::from("path/to/your/out.proto"),
    ..Default::default()
  })
}

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Always welcome you to participate, contribute and together.

Dependencies

~3MB
~64K SLoC