Replacement for DDP?

That would be awesome, if you can find the time. Backwards compatibility is not issue for me at least.

Several years ago I created an experimental C# DDP package named DDPClient.NET, by porting the Java package delight-im/Android-DDP and using the third party C# library WebSocket4Net to provide the WebSocket layer.

I last worked on it in April 2018. I am happy to share the code in its last state if you want it, but I would not encourage its use for new projects.

C# and the .NET ecosystem have evolved a lot over the last few years. If I were writing a C# DDP implementation today, I would almost certainly reimplement it from scratch using the asynchronous programming model in .NET Core using the native WebSockets implementation or SignalR.

I actually think it would not be too difficult to write a modern implementation from scratch if you coded collaboratively with a good coding LLM like OpenAI GPT4 or Anthropic Claude 3 Opus. The DDP spec is a short document so an LLM can read it fully.

2 Likes

I wonder what would be needed, to switch to this from Swydo:ddp-apollo, since that seems to require fibers?

Sorry, my post was misleading. I thought the request was about my Swift impementation. It was actually about the C# fork, which I haven’t put up on Github yet. And it’s not for JavaScript either, so it would not be a replacement for Swydo:ddp-apollo. I deleted my post.

maximtimeclock@waldgeist ,
You’re right; while GraphQL and Apollo offer strong data fetching capabilities, they traditionally lacked built-in reactivity support. Consider using WebSockets for real-time communication between your server and mobile app. Libraries like Socket.IO.
While you mentioned concerns about existing DDP libraries for mobile, there might be improvements since your last exploration. Look into actively maintained libraries like meteor-cordova.

Evaluate how much effort it would take to migrate from DDP to a new technology compared to improving your current DDP implementations.
Consider your team’s experience and comfort level with different technologies like GraphQL, WebSockets, or Firebase.
And Real-time data needs and offline functionality are crucial factors when choosing a communication protocol.