[Haskell-cafe] Serialising data between Haskell and C#

Patrick Chilton chpatrick at gmail.com
Mon Mar 12 23:21:31 UTC 2018


 You could use protocol buffers:
https://developers.google.com/protocol-buffers/docs/csharptutorial

You would specify the data types you need in an independent language, then
use a code generator to get C# classes and Haskell records, and serializers
for free. On the Haskell side you can use
https://hackage.haskell.org/package/proto-lens. Then you can send the
serialized objects over FFI or the network as needed.

On Tue, Mar 13, 2018 at 12:06 AM, Clinton Mead <clintonmead at gmail.com>
wrote:

> Hi All
>
> I want to integrate Haskell into an existing C# project, initially by
> creating one C# class that basically does all it's "work" in Haskell (and
> just provides a C# interface).
>
> There will be a few types passed in and out of this Haskell module from/to
> C#. On the C# side, there are classes with members, who's types are
> probably going to be either Strings, Ints, or lists of Strings/Ints, or
> lists of other objects.
>
> I'd like to have the same types on the Haskell side.
>
> It would be nice if I could just magically pass one of these C# types to
> Haskell and on the Haskell side it will appear as a Haskell type
>
> I assume what I'll have to do is serialise the type on the C# side and
> deserialise on the Haskell side.
>
> C# allows one to serialise any data type to XML. Haskell has plenty of
> serialisation libraries as well.
>
> However, the problem I presume is that if I just serialise to XML on the
> C# side, and deserialise from XML on the Haskell side, if my types are just
> slightly different, or even if the exact serialisers/deserialises represent
> their data in different ways, it isn't going to work.
>
> It seems like passing complex data to/from Haskell may be a common problem
> other people experience, so I'm looking for any suggestions on a clean way
> of doing this.
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180313/1e177f6a/attachment.html>


More information about the Haskell-Cafe mailing list