apache / fury

A blazingly fast multi-language serialization framework powered by JIT and zero-copy.
https://fury.apache.org/
Apache License 2.0
3.13k stars 252 forks source link

[C#] Fury support for C# #686

Open jiangguilong2000 opened 1 year ago

jiangguilong2000 commented 1 year ago

for unity game development

chaokunyang commented 1 year ago

@jiangguilong2000 Thanks for submitting this issue. As a multi-language serialization framework, c# support is important for fury. But we don't have experience for c#. Maybe someone in the community are interested to take this issue.

iceboundrock commented 1 year ago

C#/.net already has a good foundation for this, like Expression Trees, which can save quite a lot of effort. I am working on a very preliminary C# port on top of Fury java implementation, but I cannot commit to anything yet.

chaokunyang commented 1 year ago

C#/.net already has a good foundation for this, like Expression Trees, which can save quite a lot of effort. I am working on a very preliminary C# port on top of Fury java implementation, but I cannot commit to anything yet.

@iceboundrock that would be very great, looking forward to it. Let us know if there are anything we can help. We're formalize our cross language protocol into a text spec. But it may still take some time. The csharp poc can skip protocol alignment and do it in the future

nfsfairytale commented 1 year ago

hope support c#

chaokunyang commented 1 year ago

hope support c#

Glad to see more demands for this, pined the issue to prioritize it! Hope this can help it get supported sooner.

jpfed commented 1 year ago

@iceboundrock Expression trees sound like a great idea for selectively deserializing fields. On the serialization end, it may be worth considering source generators for optimum performance.

chaokunyang commented 1 year ago

@jpfed How about generate code at runtime? Generate source code statically will need users to integrate it with build pipeline, which may introduce extra user mind burden.

chaokunyang commented 7 months ago

https://fury.apache.org/docs/specification/fury_xlang_serialization_spec is our cross-language serialization spec, anyone interested at this issue can take a look at this document to know how to implement C# for fury

chaokunyang commented 3 months ago

C#/.net already has a good foundation for this, like Expression Trees, which can save quite a lot of effort. I am working on a very preliminary port on top of Fury java implementation, but I cannot commit to anything yet.C#

I would like to know the progress of C# porting. We can form a small team to promote this matter together, as the addition of C# serialization is crucial for Unity game development. After all, Fury is far superior to other serialization options.

Hi @nfsfairytale , this hasn't been started. I can help break the work down, But I am not familiar with c# and busy with other things recently, thus can't take up part of the work