proto-lens-protoc

Protocol buffer compiler for the proto-lens library.

https://github.com/google/proto-lens#readme

Version on this page:0.5.0.0
LTS Haskell 20.26:0.7.1.1
Stackage Nightly 2023-12-26:0.8.0.0
Latest on Hackage:0.8.0.0

See all snapshots proto-lens-protoc appears in

BSD-3-Clause licensed by Judah Jacobson
Maintained by [email protected]
This version can be pinned in stack with:proto-lens-protoc-0.5.0.0@sha256:bbd744e0b066470f5c433fa3bd20a036326fc01edf290a4ff8d029d95dddb912,2064

Module documentation for 0.5.0.0

  • Data
    • Data.ProtoLens
      • Data.ProtoLens.Compiler
        • Data.ProtoLens.Compiler.Combinators
        • Data.ProtoLens.Compiler.Definitions
        • Data.ProtoLens.Compiler.Generate
        • Data.ProtoLens.Compiler.Plugin

Turn protocol buffer files (.proto) into Haskell files (.hs) which can be used with the proto-lens package. The library component of this package contains compiler code (namely Data.ProtoLens.Compiler.*) is not guaranteed to have stable APIs.'

Changes

Changelog for proto-lens-protoc

v0.5.0.0

Breaking Changes

  • Capitalize enum values, and capitalize names of enum sub-messages (#270).
  • Fix the parser to fail on end-group markers with the wrong tag number (#282).

Backwards-Compatible Changes

  • Allow enum names that start with underscores. (#238)
  • Track changes to proto-lens: use generated Haskell code and a custom parsing monad to encode/decode proto messages faster.
  • Store repeated fields internally as Vectors, and expose the internal representation via new vec'* lenses. (#302)
  • Use Vectors for more efficient encoding/decoding.
  • Add more combinators to support the generated code.

v0.4.0.1

  • Bump the dependency on base and containers to support ghc-8.6.1.
  • Fix a GHC error on enums with a very large number of cases (#241).

v0.4.0.0

  • Split out proto-lens-setup and proto-lens-runtime into separate packages.
  • Hide the constructors and record fields of message types, and make Show instances call showMessageShort.
  • Generate explicit NFData instances for each type.
  • Track the change to proto-lens: Don’t use data-default for default proto values (#194).
  • Use simplified lens-labels instances. (#208)

v0.3.1.2

  • Bump the upper bound to temporary-1.3.
  • Fix warnings.

v0.3.1.1

  • Fix management of generated files between Cabal components (#171).
  • Bump the lower bound on base to indicate we require ghc>=8.0.
  • Use autogen-modules. (#196)

v0.3.1.0

  • Bump the dependency on base for ghc-8.4.2.
  • Bump the dependency to Cabal-2.2.*.
  • Make Symbol an instance of Semigroup.

v0.3.0.0

  • Remove support for ghc-7.10. (#136)
  • Use a .cabal file that’s auto-generated from hpack. (#138)
  • Separate types into their own module, apart from field lenses.
  • Improve readability of HasLens instances. (#118)
  • Add support for tracking unknown fields. (#129)
  • Don’t generate Haskell modules if they won’t be used. (#126)
  • Bundle enum pattern synonyms exports with their type. (#136)
  • Split the Message class into separate methods. (#139)
  • Refactor the FieldDescriptorType. (#147)
  • Add a case to proto3 enums for unknown values. (#137)
  • Track consolidation of proto-lens-descriptors into proto-lens. (#140)
  • Generate service definitions using promoted datatypes. (#154)
  • Generate prisms for oneof message fields. (#160)

v0.2.2.3

  • Don’t camel-case message names. This reverts behavior which was added in v0.2.2.0.

v0.2.2.2

  • Bump the dependency for process-1.6.

v0.2.2.1

  • Fix the case where types/constructors of oneofs overlap with those of submessages or subenums, by appending "'" to the former when required.

v0.2.2.0

  • Bump the dependency on base to support ghc-8.2.1 and Cabal-2.0.
  • Bump the dependency for haskell-src-exts-0.19.
  • Improve the semantics of oneof fields, and add a lens to access the underlying sum type.
  • Generate Ord instances for all exported datatypes.
  • Print a better error message when missing protoc or proto-lens-protoc.
  • Expose message names to support Data.ProtoLens.Any.
  • CamelCase the names of Haskell message types.

v0.2.1.0 and older

See Changelog.md for proto-lens.