Protocol buffer compiler for the proto-lens library.

Version on this page:
LTS Haskell 12.22:
Stackage Nightly 2018-12-10:
Latest on Hackage:

See all snapshots proto-lens-protoc appears in

BSD3 licensed by Judah Jacobson
Maintained by

Module documentation for

There are no documented modules for this package.

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.'


Changelog for proto-lens-protoc


  • 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).


  • 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)


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


  • 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)


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


  • 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)


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


  • Bump the dependency for process-1.6.


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


  • 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 for proto-lens.

comments powered byDisqus