www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Released vibe.d 0.10.1 (WebRPC)

reply =?UTF-8?Q?S=C3=B6nke_Ludwig?= <sludwig outerproduct.org> writes:
vibe.d 0.10.1 has been released a few days ago. The major new feature is 
a new RPC mechanism that is basically a bi-directional extension of the 
REST interface generator. The idea is to use HTTP connections for the 
transport in order to minimize transport issues and allow simple proxy 
setups to be used. This approach allows to pass through typical NATs or 
firewall configurations in one direction, while still enabling 
bi-directional peer-to-peer communication.

The way this works in code is very similar to the existing REST 
interface system, requiring an interface definition that will be used to 
transparently serialize regular D calls to send them over the wire. Most 
of the additional features, such as `Collection!T` and the 
authorization/authentication system are supported, too.

Currently, this is implemented using WebSockets under the hood, but the 
idea is to leverage HTTP/2+ server push functionality later on. Once 
QUIC and HTTP/3 support is available, this could also be extended to 
punch through NATs in both directions and allow fully unrestricted P2P 
communication.

Speaking of HTTP/2, some time ago, I also finally got around to merge 
the work on a HTTP/2 server implementation by Francesco Galla and 
Francesco Mecca done as part of a SAoC into vibe-http master. 
Unfortunately, the state of the code is still very experimental and 
ideally needs to be continued by integrating a standard test suite.

For anyone wanting to try this out, just check out the repository's 
master branch* and set the `HTTPServerOption.enableHTTP2` option in 
`HTTPServerSettings.options`, or start with one of the http2 examples in 
the examples/ folder.

* https://github.com/vibe-d/vibe-http/
Sep 13
next sibling parent reply WebFreak001 <d.forum webfreak.org> writes:
On Friday, 13 September 2024 at 09:40:27 UTC, Sönke Ludwig wrote:
 vibe.d 0.10.1 has been released a few days ago. The major new 
 feature is a new RPC mechanism that is basically a 
 bi-directional extension of the REST interface generator. The 
 idea is to use HTTP connections for the transport in order to 
 minimize transport issues and allow simple proxy setups to be 
 used. This approach allows to pass through typical NATs or 
 firewall configurations in one direction, while still enabling 
 bi-directional peer-to-peer communication.

 [...]
awesome! First time hearing of WebRPC but its simplicity in using existing standards and thus having wide compatibility seems to make it a good choice.
Sep 15
parent =?UTF-8?Q?S=C3=B6nke_Ludwig?= <sludwig outerproduct.org> writes:
Am 15.09.2024 um 14:22 schrieb WebFreak001:
 On Friday, 13 September 2024 at 09:40:27 UTC, Sönke Ludwig wrote:
 [...]
awesome! First time hearing of WebRPC but its simplicity in using existing standards and thus having wide compatibility seems to make it a good choice.
I hope to eventually end up with a toolkit that makes it very easy to implement peer-to-peer networks of various kinds, in order to facilitate a decentralized alternative (or extension) to the currently ubiquitous centralized approaches. The next important step for that is to get QUIC up and running to make that a possible transport basis. Oh, and of course I forgot to mention a super important point in the release announcement. **Huge thanks to you for your support!** - Over the past months, WebFreak has generously sponsored some of my open source development, which has allowed me to once again dedicate some time for general vibe.d development and DUB maintenance. All of the big changes this year would simply not have been possible without him.
Sep 24
prev sibling parent reply Vladimir Marchevsky <vladimmi gmail.com> writes:
On Friday, 13 September 2024 at 09:40:27 UTC, Sönke Ludwig wrote:
 vibe.d 0.10.1 has been released a few days ago. The major new 
 feature is a new RPC mechanism that is basically a 
 bi-directional extension of the REST interface generator. The 
 idea is to use HTTP connections for the transport in order to 
 minimize transport issues and allow simple proxy setups to be 
 used. This approach allows to pass through typical NATs or 
 firewall configurations in one direction, while still enabling 
 bi-directional peer-to-peer communication.
Looks interesting! But I want to clarify something to be sure. Title mentions "WebRPC" - is it a (partial?) implementation of https://github.com/webrpc/webrpc or something unrelated? At quick glance at both readmes it looks completely different...
Sep 22
parent =?UTF-8?Q?S=C3=B6nke_Ludwig?= <sludwig outerproduct.org> writes:
Am 22.09.2024 um 16:16 schrieb Vladimir Marchevsky:
 On Friday, 13 September 2024 at 09:40:27 UTC, Sönke Ludwig wrote:
 vibe.d 0.10.1 has been released a few days ago. The major new feature 
 is a new RPC mechanism that is basically a bi-directional extension of 
 the REST interface generator. The idea is to use HTTP connections for 
 the transport in order to minimize transport issues and allow simple 
 proxy setups to be used. This approach allows to pass through typical 
 NATs or firewall configurations in one direction, while still enabling 
 bi-directional peer-to-peer communication.
Looks interesting! But I want to clarify something to be sure. Title mentions "WebRPC" - is it a (partial?) implementation of https:// github.com/webrpc/webrpc or something unrelated? At quick glance at both readmes it looks completely different...
It's unrelated and more a library specific name for the mechanism. I did realize that it sounds a bit like some kind of web standard ("WebRTC"), but since in the end its really just the shortest way to describe what it does and there was nothing official in existence, I kept the name anyway.
Sep 24