Skip to content

A Dart build script that downloads the Protobuf compiler and Dart plugin to streamline .proto to .dart compilation.

License

Notifications You must be signed in to change notification settings

pikaju/dart-protoc-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Dart build package to compile Protocol Buffer files to Dart source code using build_runner (i.e. the Dart build pipline) without needing to manually install the protoc compiler or the Dart Protobuf plugin protoc_plugin.

The protoc_builder package downloads the necessary Protobuf dependencies for your platform to a temporary local directory, thereby streamlining the development process.

Installation

Add the necessary dependencies to your pubspec.yaml file:

dev_dependencies:
  build_runner: <latest>
  protoc_builder: <latest>

Configuration

You must add your .proto files to a build.yaml file next to the pubspec.yaml:

targets:
  $default:
    sources:
      - $package$
      - lib/$lib$
      - proto/** # Your .proto directory

This will use the default configuration for the protoc_builder.

You may also configure custom options:

targets:
  $default:
    sources:
      - $package$
      - lib/$lib$
      - proto/**
    builders:
      protoc_builder:
        options:
          # The version of the Protobuf compiler to use.
          # (Default: "3.19.1", make sure to use quotation marks)
          protobuf_version: "3.19.1"
          # The version of the Dart protoc_plugin package to use.
          # (Default: "20.0.1", make sure to use quotation marks)
          protoc_plugin_version: "20.0.1"
          # Directory which is treated as the root of all Protobuf files.
          # (Default: "proto/")
          root_dir: "proto/"
          # Include paths given to the Protobuf compiler during compilation.
          # (Default: ["proto/"])
          proto_paths:
            - "proto/"
          # The root directory for generated Dart output files.
          # (Default: "lib/src/proto")
          out_dir: "lib/src/generated"
          # Enable the gRPC flag for the Dart protoc plugin to generate `.pbgrpc.dart` files.
          # (Default: false)
          grpc: true
          # Use the "protoc" command that's available on the PATH instead of downloading one
          # (Default: false)
          use_installed_protoc: false
          # Whether or not the protoc_plugin Dart scripts should be precompiled for better performance.
          # (Default: true)
          precompile_protoc_plugin: true

Running

Once everything is set up, you may simply run the build_runner package:

dart run build_runner build

The build_runner sometimes caches results longer than it should, so in some cases, it may be necessary to delete the .dart_tool/build directory.

About

A Dart build script that downloads the Protobuf compiler and Dart plugin to streamline .proto to .dart compilation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages