patternMinor
Does there exist standardized language-agnostic data structure notation?
Viewed 0 times
existlanguageagnosticnotationstructuredoesstandardizeddatathere
Problem
I wonder if there exists language-agnostic data structure notation. Preferably a standard, allowing to describe data structures and basic data types. e.g. something like a subset of
A motivation is to describe data structures (a model) in a way that is standardized and language-agnostic. Then have a set of mappings of those data structures into various representations (
WebIDL.A motivation is to describe data structures (a model) in a way that is standardized and language-agnostic. Then have a set of mappings of those data structures into various representations (
XML, JSON, YAML)Solution
In terms of notation:
I suspect you already know a lot of these projects, usually the focus is in serialization:
Investigating this space I found Arrow, "a language-independent columnar memory format" for sharing memory between programs, with libraries for a dozen of languages. Turns out it uses flatbuffers under the hood.
Now that I came up with this list and I suspect you may be familiar with a lot of them, perhaps will be useful to know in which way the thing you are looking for is different. I think the keyword "notation" on your question is the key.
Cheers!
- Isn't XSD exactly what you are looking for? (barring all the "severe criticism" ...). Also not sure if you are looking for a notation convenient to hand-write, that's certainly NOT XML :-).
- Typedefs and preserves seem to have more of a mathematical basis, perhaps closer to what you are looking for. A related HN thread.
I suspect you already know a lot of these projects, usually the focus is in serialization:
- The IDL list at wikipedia ...
- Amazon's Smithy and Ion.
- Microsoft's Bond.
- And of course Google's protobuf and flatbuffers, but also Mojo, oriented to IPC, and Fuchsia FIDL which seems similar.
Investigating this space I found Arrow, "a language-independent columnar memory format" for sharing memory between programs, with libraries for a dozen of languages. Turns out it uses flatbuffers under the hood.
Now that I came up with this list and I suspect you may be familiar with a lot of them, perhaps will be useful to know in which way the thing you are looking for is different. I think the keyword "notation" on your question is the key.
Cheers!
Context
StackExchange Computer Science Q#129904, answer score: 3
Revisions (0)
No revisions yet.