A GDScript and Godot Engine client for connecting to Phoenix Framework Channels, enabling real-time communication in games and applications.
GodotPhoenixChannels is a client library written in GDScript for the Godot game engine that connects to Phoenix Framework Channels. It enables real-time, bidirectional communication between Godot applications and Elixir/Phoenix backends, solving the need for scalable live features like chat, notifications, and multiplayer interactions in games.
Godot developers building games or applications that require real-time features, such as multiplayer games, live dashboards, or collaborative tools, and who are using or considering Elixir and Phoenix for their backend.
Developers choose GodotPhoenixChannels because it provides a native, feature-complete Phoenix client for Godot, enabling access to Phoenix's proven scalability and real-time capabilities without leaving the GDScript ecosystem. It mirrors the official JavaScript client's API while adapting to Godot's conventions.
GDScript and Godot client for real-time Phoenix Framework Channels
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements almost every feature from the official Phoenix JavaScript client, including sockets, channels, and presence, as stated in the README under 'Features'.
Uses Godot's WebSocketClient for transport and integrates with GDScript events, with automatic disconnection and channel leaving on node freeing, highlighted in 'Godot Integration' and 'Automatic Cleanup'.
Leverages Phoenix's ability to handle millions of connections, referenced in the README with links to articles on scaling to 2 million WebSocket connections and Discord's use of Elixir.
Supports both Godot 3.* and Godot 4.0 with separate branches and asset library entries, ensuring broad applicability across Godot versions.
The TODO list admits missing channel push buffer and socket push buffer, which are essential for message queuing and reliability in high-load or unstable network scenarios.
Requires a Phoenix backend built on Elixir, limiting flexibility if you need to switch to or integrate with other server technologies, as it's designed specifically for Phoenix Channels.
Developers must manage both a Godot project and a Phoenix server, requiring knowledge of two distinct ecosystems, which adds overhead compared to simpler networking solutions.
As a niche library for Godot-Phoenix integration, community resources, tutorials, and third-party tools are scarce compared to more common networking options.