microsoft / bond

Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.
MIT License
2.61k stars 322 forks source link

Feature request: F# code generation from IDL #312

Open dbykat opened 7 years ago

dbykat commented 7 years ago

Is an F# code generator in the works? We are coding our services in F# and using Microsoft Bond to manage schema evolution. Our current process is to write the schema via IDL then use bond to auto-generate the C# classes. Within our services, we deserialize objects into the C# auto-generated objects and explicitly manage the conversion to F# in our code (i.e. bond binary->C#->F#). Ideally we would like to generate our F# classes from the Bond IDL, allowing us to remove the intermediary C#->F# mapping and go directly from binary->F#. Thank you!

chwarr commented 7 years ago

Nothing on the roadmap at present. I'm working with @ant0nsc on attribute-based F# support, which will be needed before codegen can be done.

chwarr commented 7 years ago

Some initial work was done a few months back, but it didn't yield anything worth releasing. More work here has been delayed because I need to work on some internal-to-Microsoft systems that use/build Bond. No ETA for when I'll be able to pick F# back up.

chwarr commented 6 years ago

I've switched teams at Microsoft and no longer work on Bond: someone else will need to finish this up.

brettrowberry commented 3 years ago

I am very interested in this!

chwarr commented 3 years ago

As of September 2020 and for the foreseeable future, no new languages will be added to Bond by Microsoft.

brettrowberry commented 3 years ago

Thanks @chwarr, should we be moving to protobuf?

chwarr commented 3 years ago

Thanks @chwarr, should we be moving to protobuf?

That is a decision you'll need to make for your own project. There's no one-size-fits all guidance.