utxorpc: Generated code for a gRPC interface for UTxO Blockchains

[ apache, blockchain, cardano, grpc, library, network ] [ Propose Tags ]

UTxO RPC (u5c for short) is an interface tailored for interactions with UTxO-based blockchains, prioritizing performance and developer experience. By providing a common contract, a range of SDKs, and thorough documentation, UTxO RPC aims to facilitate:

  • Reusability: Enabling shared components that can be reused across different projects to simplify the integration effort.

  • Interoperability: A common interface to simplify integrations between different parties and avoid the common pitfall of vendor lock-in.

  • Performance: A serialized binary format which is compact and efficient, resulting in smaller message sizes and reduced network overhead compared to its JSON counterpart

Please note that this package only contains the generated Haskell code from the u5c specification. To write a u5c implementation, please see the client or server SDK.

For documentation on the specification, see <a href="https://utxorpc.org">https://utxorpc.org</a>.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.3.0, 0.0.4.0, 0.0.4.1, 0.0.4.2, 0.0.4.3, 0.0.4.4, 0.0.5.0, 0.0.5.1, 0.0.6.0, 0.0.7.0
Dependencies base (>=4.7 && <5), proto-lens (>=0.7.1 && <0.8), proto-lens-protobuf-types (>=0.7.2 && <0.8), proto-lens-runtime (>=0.7.0 && <0.8) [details]
License Apache-2.0
Author TxPipe <registrant@txpipe.io>
Maintainer TxPipe <registrant@txpipe.io> Dominic Mayhew <dominic.j.mayhew@gmail.com>
Category Network, GRPC, Blockchain, Cardano
Home page https://github.com/utxorpc/spec#readme
Bug tracker https://github.com/utxorpc/spec/issues
Uploaded by txpipe at 2024-07-14T21:10:13Z
Distributions NixOS:0.0.5.1
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 243 total (51 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for utxorpc-0.0.7.0

[back to package description]

UTxO RPC

This package is generated by proto-lens-protoc from the u5c specification and contains Data.ProtoLens.Message.Message instances useful for serde. It is designed to be used with the client or server SDK. Build a message with the lens library by importing the relevant utxorpc modules and calling Data.ProtoLens.Message.defMessage:

import Control.Lens.Operators ((&), (.~))
import Data.ProtoLens.Message (Message (defMessage))
import qualified Data.Text.Encoding as T
import Proto.Utxorpc.V1.Sync.Sync (FetchBlockRequest)
import Proto.Utxorpc.V1.Sync.Sync_Fields (hash, index)

fetchBlockRequest :: FetchBlockRequest
fetchBlockRequest =
defMessage
    & ref .~
    [ defMessage 
        & index .~ 116541970
        & hash .~ T.encodeUtf8 "9d5abce5b1a7d94b141a597fd621a1ff9dcd46579ff1939664364311cd1be338"
    ]

The easieset way to send requests or run a service is through the SDKs: utxorpc-client and utxorpc-server.

Generating this package from the spec

Please see the u5c project README for information on how this package was generated. To generate this code yourself, please see proto-lens.

NOTE: proto-lens-protobuf-types version >= 0.7.2 is required to build this package, as it includes support of the FieldMask well-known type.

Maintainers

See the UTxO spec repo README.

[!NOTE] proto-lens-protobuf-types version >= 0.7.2 is required to build this package as it contains support for the FieldMask well-known type.