Module Capnp.Codecs

Contents

Instructions: Use this module in your project

In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:

  1. Add the following to your project's dependencies/CMakeLists.txt:

    Copy
    DkSDKProject_DeclareAvailable(capnp
        CONSTRAINT "= 3.5.0"
        FINDLIBS capnp capnp.unix)
    DkSDKProject_MakeAvailable(capnp)
  2. Add the Findlib::capnp library to any desired targets in src/*/CMakeLists.txt:

    Copy
    target_link_libraries(YourPackage_YourLibraryName
         # ... existing libraries, if any ...
         Findlib::capnp)
  3. Click your IDE's Build button

Not using DkSDK?

FIRST, do one or all of the following:

  1. Run:

    Copy
    opam install capnp.3.5.0
  2. Edit your dune-project and add:

    Copy
    (package
      (name YourExistingPackage)
      (depends
      ; ... existing dependenices ...
      (capnp (>= 3.5.0))))

    Then run:

    Copy
    dune build *.opam # if this fails, run: dune build
  3. Edit your <package>.opam file and add:

    Copy
    depends: [
      # ... existing dependencies ...
      "capnp" {>= "3.5.0"}
    ]

    Then run:

    Copy
    opam install . --deps-only

FINALLY, add the capnp library to any desired (library)and/or (executable) targets in your **/dune files:

Copy
(library
  (name YourLibrary)
  ; ... existing library options ...
  (libraries
    ; ... existing libraries ...
    capnp))

(executable
  (name YourExecutable)
  ; ... existing executable options ...
  (libraries
    ; ... existing libraries ...
    capnp))
typecompression_t`` = ``[
| ``` None ``
| ``` Packing `` ]
module FramingError:sig...end
module FramedStream:sig...end
valserialize_fold :'cap Message.BytesMessage.Message.t -> ``compression:compression_t -> ``init:'acc -> ``f:``('acc ->``string-> 'acc)`` -> 'acc

serialize_fold message ~compression ~init ~f generates an ordered sequence of string fragments corresponding to a Cap'n Proto framed message, encoded using the specified compression method. The return value is the result of folding f across the resulting sequence of fragments.

valserialize_iter :'cap Message.BytesMessage.Message.t -> ``compression:compression_t ->``f:``(``string->unit)``-> unit

serialize_iter message ~compression ~f generates an ordered sequence of string fragments corresponding to a Cap'n Proto framed message, encoded using the specified compression method. f is applied to each fragment in turn.

valserialize_fold_copyless :'cap Message.BytesMessage.Message.t -> ``compression:compression_t -> ``init:'acc -> ``f:``('acc ->``string->``int-> 'acc)`` -> 'acc

serialize_fold_copyless message ~compression ~init ~f exposes an ordered sequence of string fragments (and lengths) corresponding to a Cap'n Proto framed message, encoded using the specified compression method. The return value is the result of folding f across the resulting sequence of fragments.

valserialize_iter_copyless :'cap Message.BytesMessage.Message.t -> ``compression:compression_t ->``f:``(``string->``int->unit)``-> unit

serialize_iter_copyless message ~compression ~f exposes an ordered sequence of string fragments (and lengths) corresponding to a Cap'n Proto framed message, encoded using the specified compression method. f is applied to each fragment in turn.

val serialize : ``compression:compression_t -> 'cap Message.BytesMessage.Message.t -> string

serialize ~compression message constructs a string containing the message segments prefixed with the serialization framing header, encoded using the specified compression method.