Protocol buffer compiler for the proto-lens library.

Version on this page:
LTS Haskell 20.26:
Stackage Nightly 2024-06-22:
Latest on Hackage:

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-,3535

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 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)
  • Build with haskell-src-exts-1.20.*. (#170)
  • Add Haddock comments to fields. (#172)
  • Don’t unnecessarily touch files. (#177)


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