Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: initial BEVE description language BIDL #11

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

SiebrenW
Copy link

Here's my first proposal to what a description language would look like.

I chose BIDL as the name, which didn't seem to be anything yet after a quick search. If we were to put this in the REPE stack instead, I was imagining to call it RIDL instead (as in riddle, which I kind of dig, but has a CPU vulnerability with the same name)

There's no concrete spec yet, just an example with a lot of comments to convey my intent for you to shoot on.

It was loosely inspired by plant UML, but started to look more like rust as I was going. I mostly focused on just shoving all of BEVE's features in there, trying to give it some concise but somewhat clear and declarative syntax. I tried to fix a pet peeve of mine that IDLs are always so verbose and hard to read because of it.

Some things may not make sense on an IDL perspective though. Like the integer key types as field names, or any UTF-8 string as the key, though BEVE seems to be able to do it, I'm not going to limit it without at least considering it anyways. The issue may come in generation (glaze will need some hint and the values need some alias (ie 2 becomes key_u8_2 or something). I also believe integer-keys are not supported in json)

I'm in no rush to get this accepted or anything, so take your time and don't hold back.

@stephenberry
Copy link
Collaborator

Awesome! I looked over it briefly and I'll plan to go over it again after I've given it more thought, but I really like this syntax as a starting point and your type names seem clear.

I could go either way with the Rust syntax or a C++ like struct syntax. I think the Rust-like syntax may be easier to parse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants