Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Marshaling support? #136

Closed
forderud opened this issue Jan 21, 2019 · 4 comments
Closed

Marshaling support? #136

forderud opened this issue Jan 21, 2019 · 4 comments
Labels

Comments

@forderud
Copy link

forderud commented Jan 21, 2019

First, I have to say that I'm excited about this project and am hoping for this to mature into a cross-platform alternative to COM and WinRT.

One of the big strengths of COM is transparent support for out-of-process marshaling, provided that the interfaces are "automation" compatible. This have enabled my team to easily switch between in-process (for performance), and out-of-process deployment (for failure isolation) of the same SW with minimal SW changes.

Are there any similar plans for transparent out-of-process marshaling with "xlang"?

@devhawk
Copy link
Contributor

devhawk commented Jan 22, 2019

Nothing more than early discussions yet. We have lots of other things to get to first.

Personally, I'm of the opinion that APIs need to be designed correctly to work well in both in and out of process scenarios. This has been an issue in the past, however I think building good remotable APIs is easier today because of the broad availability of "await" style async processing in mainstream languages. I've even presented on this topic - Slides 20-27 of Insert Funny Title ​About API Design Here from VSLive Redmond 2015 (sorry, no audio or video - just slides)

@forderud
Copy link
Author

Please note that I'm not thinking about over-the-network remoting here. Just out-of-process communication on the same computer. With COM, it's possible to implement shared memory-based marshaling by implementing the IMarshal interface. My experience is that this can eliminate copying overhead when exchanging large objects/buffers between processes, and reduce the marshaling overhead to basically a context switch.

I fully understand that this discussion might be a bit premature. Just wanted to flag that transparent marshaling is a valuable property that I would appreciate if could be part of the "xlang" roadmap.

@kennykerr
Copy link
Contributor

Thanks for the feedback!

@forderud
Copy link
Author

forderud commented Jan 7, 2022

Related question: #770

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants