3 ms·
Wow, I like the data format specification you devised. Especially that you insist on "no optional features or extensions" -- something that makes other standard
by mysterypie 4y ago
Wow, I like the data format specification you devised. Especially that you insist on "no optional features or extensions" -- something that makes other standards so difficult to rely on.
Is there anyone using it? It's always great to have extra ammunition to make a strong case that we should use this instead of, say, XML.
- kstenerud 4y agoIt's still in the prerelease stage, but v1 will be released later this year. I'm mostly getting hits from China since they tend to be a lot more worried about security. I expect the rest of the world to catch on to the gaping security holes of JSON and friends in the next few years as the more sophisticated actors start taking advantage of them. For example https://github.com/kstenerud/concise-encoding/blob/master/ce-structure.md#attack-vectors https://github.com/kstenerud/concise-encoding/blob/master/ce... There are still a few things to do: - Update enctool (https://github.com/kstenerud/enctool https://github.com/kstenerud/enctool) to integrate https://cuelang.org https://cuelang.org so that there's at least a command line schema validator for CE. - Update the grammar file (https://github.com/kstenerud/concise-encoding/tree/master/antlrv4-grammar https://github.com/kstenerud/concise-encoding/tree/master/an...) because it's a bit out of date. - Revamp the compliance tests to be themselves written in Concise Encoding (for example https://github.com/kstenerud/go-concise-encoding/blob/master/tests/cte-containers.cte https://github.com/kstenerud/go-concise-encoding/blob/master... but I'll be simplifying the format some more). That way, we can run the same tests on all CE implementations instead of everyone coming up with their own. I'll move the test definitions to their own repo when they're done and then you can just submodule it. I'm thinking that they should look more like: c1 { "type" = { "identifier" = "ce test" "version" = 1 } "tests" = [ { "name" = "Some kind of test" "success" = [ // These must successfully convert to each other { "cte" = "c1 [1 2 3 4]" "cbe" = |u8x 81 01 7a 01 02 03 04 7b| // Events are a kind of text shorthand for what the parsing of cte or cbe should produce "events" = ["v 1" "l" "n 1" "n 2" "n 3" "n 4" "e"] } { ... } ] "failure" = [ // These must fail to decode { "cte" = "c1 100 ]" } { "cbe" = |u8x 81 01 64 7b| } ] } ] }