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

Reversing Dependency: Implementing Untyped-RPC on Top of Typed-RPC (draft) #51

Closed
wants to merge 16 commits into from

Commits on Nov 23, 2023

  1. draft

    mbarbin committed Nov 23, 2023
    Configuration menu
    Copy the full SHA
    e04a2e2 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2023

  1. split codec into own lib

    mbarbin committed Nov 27, 2023
    Configuration menu
    Copy the full SHA
    c6c8e5a View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2023

  1. move rpc spec to grpc

    - `Grpc_protobuf` is no longer eio specific
    mbarbin committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    65f0f7f View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2023

  1. rename grpc-protoc-plugin

    mbarbin committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    7531988 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4f33fac View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2023

  1. improve support for ocaml-protoc (wip)

    - Make use of ocaml-protoc's server implementation bundle as intended;
    
    - Adapt routeguide example to ocaml-protoc to show the differences.
    
    This results in a more complicated [Grpc.Rpc] interface that tries to
    better capture the common parts between ocaml-protoc and
    ocaml-protoc-plugin that can be used by ocaml-grpc.
    mbarbin committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    45d4878 View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2023

  1. Configuration menu
    Copy the full SHA
    042efeb View commit details
    Browse the repository at this point in the history
  2. Revert "add dedicated user facing libraries"

    This reverts commit 042efeb.
    mbarbin committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    8677baa View commit details
    Browse the repository at this point in the history
  3. enforce consistency of request and response modes

    - This adds type safety to ensure the RPCs are called with the
      expected protocol (e.g. you cannot call a unary rpc with a
      server_streaming entry point, etc.).
    
    On the ocaml-protoc-plugin side, currently there are no markers for
    the rpc modes - this interface will permit adding them in the future
    without user facing changes.
    
    On the ocaml-protoc plugin, the value mode flows from the proto file
    definition and is checked in the user code as expected.
    
    Implementation note: There's perhaps a way to shorten the mapping of
    value-modes but I couldn't find one given that `Grpc` cannot depend on
    `Ocaml_protoc`, and thus the `Value_mode` types are not equal.
    mbarbin committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    c0c4df5 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2023

  1. Configuration menu
    Copy the full SHA
    358e2c0 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2024

  1. Configuration menu
    Copy the full SHA
    225db75 View commit details
    Browse the repository at this point in the history
  2. fix the service names used by Typed_rpc

    In the existing examples, the service name is separated from the
    package name by a dot, which I inadvertently omitted in the previous
    implementation.
    
    Note that as long as the service name used by a client and a server is
    the same, the right handler is executed, so there's some leeway in the
    actual choice of the convention to use. The hope is that the dot
    separated one is standard.
    mbarbin committed Jan 6, 2024
    Configuration menu
    Copy the full SHA
    67537c1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    dcca2d3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7121496 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9b80a3a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9673317 View commit details
    Browse the repository at this point in the history