awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
neuecc avatar

neuecc/MagicOnion

0
View on GitHub↗
4,408 stars·457 forks·C#·MIT·20 viewscysharp.github.io/MagicOnion↗

MagicOnion

MagicOnion is a remote procedure call framework for the .NET platform and Unity. It functions as a binary API protocol and real-time communication engine that uses shared interfaces to provide type-safe communication between clients and servers.

The framework distinguishes itself through its compatibility with ahead-of-time compilation environments, utilizing source generators for client proxies and serialization to support mobile and console platforms including those using IL2CPP. It provides a specialized middleware layer for Unity that handles engine-specific data types and ensures runtime compatibility.

The project covers a broad range of networking capabilities, including bidirectional data streaming, unary request-response cycles, and server-to-client push messaging. It includes built-in support for security through TLS encryption and JWT authentication, as well as stateful per-client session management and interceptor-based request filtering.

Diagnostic tools are available for monitoring communication status, tracking server performance metrics, and propagating server-side stack traces to clients for debugging.

Features

  • Remote Procedure Call Frameworks - Provides a high-performance binary RPC framework for invoking methods on remote services as if they were local.
  • Remote Procedure Calls - Implements a remote procedure call framework for executing functions on remote servers as if they were local.
  • Complex Data Serialization - Converts complex objects into a compact binary format for efficient network transmission.
  • AOT-Compatible Networking Clients - Provides networking clients specifically designed to operate without dynamic reflection in AOT environments.
  • Unity Networking Integrations - Provides a specialized communication layer for Unity with support for AOT compilation and engine-specific data types.
  • Binary Communication Protocols - Implements a high-performance binary transport protocol for efficient distributed system communication.
  • Server-Side Session State - Maintains dedicated server-side service instances for each connection to preserve state across method calls.
  • Server-to-Client Event Emissions - Allows servers to push asynchronous messages to connected clients via a persistent connection to enable live updates.
  • Binary Serialization - Uses compact binary representations for efficient network transmission of complex objects.
  • Realtime Communication Protocols - Establishes persistent, bidirectional data exchange for broadcasting and state synchronization between server and clients.
  • Remote Method Invocation - Establishes communication channels to trigger functions on a remote device as if they were local asynchronous calls.
  • RPC Clients - Provides a client-side proxy for executing remote methods on a server across various .NET platforms.
  • RPC Frameworks - Functions as a high-performance RPC framework for executing remote procedures across .NET network nodes.
  • RPC Servers - Hosts a remote procedure call service to process incoming requests from connected clients.
  • RPC Service Implementations - Implements business logic by inheriting from base classes and fulfilling shared interfaces to handle remote requests.
  • Schema-Driven RPC Implementations - Implements remote procedure call services using shared interfaces as the formal protocol schema.
  • Bidirectional RPC Streaming - Establishes continuous bidirectional connections to send and receive messages asynchronously.
  • Ahead-Of-Time Compilation - Ensures the communication layer is compatible with ahead-of-time compilation for mobile and desktop platforms.
  • Fullstack Type Sharing - Shares type definitions between client and server to ensure end-to-end type safety.
  • Interface Contracts - Uses shared interface contracts to ensure consistent type-safe communication across application boundaries.
  • Request-Response Exchanges - Implements synchronous remote procedure calls that treat each request as a single transaction over a network connection.
  • Shared API Contract Libraries - Utilizes a shared library of interfaces and data types to maintain consistent communication contracts.
  • AOT Proxy Generators - Produces client-side proxy code during compilation to remove runtime reflection and support AOT platforms.
  • Unary RPC Execution - Implements standard request-response remote procedure call patterns for simple interactions.
  • Type-Safe Client Generators - Generates type-safe client proxy code during compilation to ensure consistency between server interfaces and client calls.
  • Interface-Based Definitions - Uses shared interfaces to define service contracts and generate transparent client proxies for type-safe communication.
  • AOT-Compatible Unity Serializers - Provides a communication layer with AOT-compatible serialization for Unity native data types.
  • Real-Time Communication - Implements persistent, bidirectional data streaming between clients and servers for live updates and interactive messaging.
  • Real-Time Data Streaming - Provides utilities for pushing live server-side data updates to connected clients via bidirectional streams.
  • Bidirectional Streams - Implements full-duplex message exchange patterns for simultaneous client-to-server and server-to-client streaming.
  • Request and Response Interception - Executes custom logic pipelines before and after service method calls to handle global processing and exceptions.
  • Complex Data Type Exchange - Exchanges high-level objects and native data types, such as Unity vectors, across different execution environments.
  • Broadcast Messaging - Enables sending single messages to groups of connected clients simultaneously to synchronize data.
  • Real-time Notification Broadcasters - Pushes real-time alerts and asynchronous updates to users via persistent websocket connections.
  • Cross-Platform Networking - Provides a unified, portable communication layer for various .NET platforms.
  • Session State Persistence - Preserves a service instance and its associated state across multiple method calls during a persistent connection.
  • Real-Time State Broadcasting - Streams internal application state changes to multiple external clients via persistent network connections.
  • Service Meshes - Provides an infrastructure layer to manage service-to-service communication, security, and policy enforcement.
  • Bearer Token Attachments - Adds security tokens and custom metadata to client request headers to authenticate identity.
  • Role-Based Access Control - Restricts access to specific classes or methods based on assigned user roles.
  • JWT Authentication - Validates signed JSON Web Tokens in request headers to identify users via the web context.
  • Request Filter Integrations - Inspects request headers using custom filters to implement security checks and API key validation.
  • Secure Network Communication - Secures network services using TLS encryption, JWT authentication, and role-based access control.
  • TLS Traffic Encryption - Encrypts communication channels between clients and servers using SSL/TLS encryption.
  • Request Interceptors - Provides a request interceptor pipeline to handle cross-cutting concerns like authentication and global exceptions.
  • Stateful Service Instances - Maintains dedicated server-side service instances for each connection to preserve user state across multiple calls.
  • Sequential Request Processing - Processes method calls from a single client in the exact order they were sent to prevent race conditions.
  • Server Metrics - Exposes real-time server health metrics including connection counts, method durations, and exception rates.
  • Message Ordering - Guarantees the sequential processing of remote method calls arriving from a single connection.
  • Application Frameworks - gRPC-based streaming RPC framework.
  • Dotnet Frameworks - Streaming framework for .NET and Unity.
  • Networking Libraries - gRPC-based RPC framework.

Star history

Star history chart for neuecc/magiconionStar history chart for neuecc/magiconion

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with MagicOnion

These projects share indexed features with MagicOnion. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • cysharp/magiconionCysharp avatar

    Cysharp/MagicOnion

    4,408View on GitHub↗

    MagicOnion is a .NET RPC framework used to build type-safe remote procedure call services using shared interfaces for communication between servers and clients. It functions as a binary serialization framework and a distributed service orchestrator, providing a network layer for low-latency streaming and real-time data exchange. The project distinguishes itself through an AOT-compatible network client that uses source generators to support ahead-of-time compilation in restricted runtime environments. It enables bidirectional communication and real-time data streaming, allowing servers and mul

    C#c-sharpgrpcrpc
    View on GitHub↗4,408
  • googollee/go-socket.iogoogollee avatar

    googollee/go-socket.io

    5,787View on GitHub↗

    go-socket.io is a Go implementation of the Socket.IO protocol used to build real-time, bidirectional, and event-driven communication between servers and clients. It functions as a communication framework that manages persistent connections and maps incoming network packets to specific handler functions to execute application logic. The library enables horizontal scaling of real-time connections through a distributed pub/sub adapter, which synchronizes events across multiple server instances using an external data store. It ensures reliability across different network environments by automatic

    Go
    View on GitHub↗5,787
  • google/tarpcgoogle avatar

    google/tarpc

    3,713View on GitHub↗

    tarpc is a remote procedure call framework for Rust that generates server traits and client stubs for network communication. It provides an asynchronous service interface that allows remote functions to be called as if they were local asynchronous tasks. The framework utilizes a serialized transport layer to move request and response data via TCP sockets, Unix domain sockets, or in-process channels. It includes a request lifecycle interceptor for injecting custom logic to handle authorization, throttling, and load balancing, as well as a distributed request telemetry system that attaches dead

    Rust
    View on GitHub↗3,713
  • snailclimb/guide-rpc-frameworkSnailclimb avatar

    Snailclimb/guide-rpc-framework

    4,416View on GitHub↗

    This is a remote procedure call framework built on Netty for asynchronous communication between distributed services. It provides the infrastructure necessary to execute remote procedure calls across a network, allowing clients and servers to interact without blocking. The framework utilizes Zookeeper for service registration and dynamic discovery, ensuring that service providers can be located automatically at runtime. It includes a service versioning manager to organize and track different iterations of service interfaces, enabling side-by-side deployments of multiple versions. The system

    Java
    View on GitHub↗4,416
Compare all 30 related projects→

Frequently asked questions

What does neuecc/magiconion do?

MagicOnion is a remote procedure call framework for the .NET platform and Unity. It functions as a binary API protocol and real-time communication engine that uses shared interfaces to provide type-safe communication between clients and servers.

What are the main features of neuecc/magiconion?

The main features of neuecc/magiconion are: Remote Procedure Call Frameworks, Remote Procedure Calls, Complex Data Serialization, AOT-Compatible Networking Clients, Unity Networking Integrations, Binary Communication Protocols, Server-Side Session State, Server-to-Client Event Emissions.

Which projects share features with neuecc/magiconion?

Projects with overlapping indexed features include: cysharp/magiconion — MagicOnion is a .NET RPC framework used to build type-safe remote procedure call services using shared interfaces for… googollee/go-socket.io — go-socket.io is a Go implementation of the Socket.IO protocol used to build real-time, bidirectional, and event-driven… google/tarpc — tarpc is a remote procedure call framework for Rust that generates server traits and client stubs for network… snailclimb/guide-rpc-framework — This is a remote procedure call framework built on Netty for asynchronous communication between distributed services.… twitchtv/twirp — Twirp is a Protocol Buffers RPC framework designed for implementing type-safe, distributed microservices communication… connectrpc/connect-go — Connect-go is a library for building type-safe remote procedure call services that are wire-compatible with gRPC and…