[ 
https://issues.apache.org/jira/browse/ARROW-2712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16513540#comment-16513540
 ] 

Kouhei Sutou commented on ARROW-2712:
-------------------------------------

Thanks for thinking .NET support! From my point of view:

GLib C API based bindings:

Pros:

* We can get well workable .NET library with the least works if Mono GAPI works 
well.
** We can work together for Ruby library and .NET library.

Cons:

* There is overhead than C++ API based bindings.
* We don't try building GLib C API on Windows yet. (I need Windows 
environment...)
** I'll work on it eventually.

C++ API based bindings:

Pros:

* We may get well workable .NET library with less works if Mono CppSharp works 
well. (It seems that it works well.)
* We can use optimization in C++ API. (LLVM based JIT is planed.)

Cons:

* It may be slower than C# native implementation.
* It may be difficult to use than C# native implementation.
* It may be difficult to install than C# native implementation.

C# native implementation:

Pros:

* It may be faster than bindings.
* It will be easy to use.
* It will be easy to install.

Cons:

* We need many works.
** We can implement step by step.


> .NET Language Binding for Arrow
> -------------------------------
>
>                 Key: ARROW-2712
>                 URL: https://issues.apache.org/jira/browse/ARROW-2712
>             Project: Apache Arrow
>          Issue Type: New Feature
>          Components: GLib
>            Reporter: Jamie Elliott
>            Priority: Major
>              Labels: features, newbie
>
> A feature request. I've seen this pop up in a few places. Want to have a 
> record of discussion on this topic. 
> I may be open to contributing this, but first need some general guidance on 
> approach so I can understand effort level. 
> It looks like there is not a good tool available for GObject Introspection 
> binding to .NET so the easy pathway via Arrow Glib C API appears to be 
> closed. 
> The only GObject integration for .NET appears to be Mono GAPI
> [http://www.mono-project.com/docs/gui/gtksharp/gapi/]
> From what I can see this produces a GIR or similar XML, then generates C# 
> code directly from that. Likely involves many manual fix ups of the XML. 
> Worth a try? 
>  
> Alternatively I could look at generating some other direct binding from .NET 
> to C/C++. Where I work we use Swig [http://www.swig.org/]. Good for vanilla 
> cases, requires hand crafting of the .i files and specialized marshalling 
> strategies for optimizing performance critical cases. 
> Haven't tried CppSharp but it looks more appealing than Swig in some ways 
> [https://github.com/mono/CppSharp/wiki/Users-Manual]
> In either case, not sure if better to use Glib C API or C++ API directly. 
> What would be pros/cons? 
>  
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to