vscode-proto3 installs statistics
By zxh404 · VS Code Marketplace · Programming Languages
Protobuf 3 support for Visual Studio Code
vscode-proto3 has 3,012,574 recorded installs on VS Code Marketplace.
It ranks #252 of 2,501 tracked VS Code Marketplace listings by installs.
It is rated 3.8 out of 5 from 16 ratings.
PluginStats has 4 daily observations since Oct 16, 2026; the latest is from Oct 19, 2026.
Rating: 3.81 / 5 from 16 ratings
About vscode-proto3
vscode-proto3
Protobuf 3 support for Visual Studio Code
https://github.com/zxh0/vscode-proto3
VSCode Commands
_By default ctrl-shift-p opens the command prompt._
| Command | Description |
| proto3: Compile All Protos | Compiles all workspace protos using configurations defined with protoc.options. | | proto3: Compile This Proto | Compiles the active proto using configurations defined with protoc.options. |
Features
• syntax highlighting. • syntax validation. • code snippets. • code completion. • code formatting. • brace matching. • line and block commenting. • compilation.
Syntax Highlighting
The grammar is written in tmLanguage JSON format.
Syntax Validation
The validation is triggered when you save the proto file. You need protoc compiler to enable syntax validation. You also need a settings.json file to tell the extension the full path of protoc if it is not in path.
Extension Settings
Below is an example settings.json file which comes from example/.vscode:
Fields
The possible fields under the protoc extension settings which can be defined in a settings.json file.
| Field | Type | Default | Description |
| path | string | _protoc in PATH_ | Path to protoc. Defaults to protoc in PATH if omitted. | | compile_on_save | boolean | false | On .proto file save, compiles to --*_out location within options | | compile_all_path | string | Workspace Root | Search Path for Compile All Protos action. Defaults to the Workspace Root | | use_absolute_path| boolean | false | Set true for compile_all_path search files using absolute path | | options | string[] | [] | protoc compiler arguments/flags, required for proto validation and compilation |
In-Line Variables
These variables can be used to inject variables strings within the protoc extension configurations. See above for examples.
| Variable | Description |
| config.* | Refer settings items in `Preferences`. | | env.* | Refer environment variable. | | workspaceRoot | Returns current workspace root path. |
Code Completion
A very simple parser is written to support code completion.
Code Snippets
| prefix | body |
| sp2 | syntax = "proto2"; | | sp3 | syntax = "proto3"; | | pkg | package package.name; | | imp | import "path/to/other/protos.proto"; | | ojp | option java_package = "java.package.name"; | | ojoc | option java_outer_classname = "ClassName"; | | o4s | option optimize_for = SPEED; | | o4cs | option optimize_for = CODE_SIZE; | | o4lr | option optimize_for = LITE_RUNTIME; | | odep | option deprecated = true; | | oaa | option allow_alias = true; | | msg | message MessageName {} | | fbo | bool field_name = tag; | | fi32 | int32 field_name = tag; | | fi64 | int64 field_name = tag; | | fu32 | uint32 field_name = tag; | | fu64 | uint64 field_name = tag; | | fs32 | sint32 field_name = tag; | | fs64 | sint64 field_name = tag; | | ff32 | fixed32 field_name = tag; | | ff64 | fixed64 field_name = tag; | | fsf32 | sfixed32 field_name = tag; | | fsf64 | sfixed64 field_name = tag; | | ffl | float field_name = tag; | | fdo | double field_name = tag; | | fst | string field_name = tag; | | fby | bytes field_name = tag; | | fm | map field_name = tag; | | foo | oneof name {} | | en | enum EnumName {} | | sv | service ServiceName {} | | rpc | rpc MethodName (Request) returns (Response); |
Google API Design Guide
The following snippets are based on Google API Design Guide.
| prefix | reference |
| svgapi | Standard Methods |
Code Formatting
Support "Format Document" if clang-format is in path, including custom style options.
By default, clang-format's standard coding style will be used for formatting. To define a custom style or use a supported preset add "clang-format.style" in VSCode Settings (settings.json)
Example usage:
"clang-format.style": "google"
This is the equivalent of executing clang-format -style=google from the shell.
With multiple formatting options
"clang-format.style": "{ IndentWidth: 4, BasedOnStyle: google, AlignConsecutiveAssignments: true }"
For further formatting options refer to the official clang-format documentation
Known Issues
Auto-completion not works in some situations.
Some users consistently see an error like spawnsync clang-format enoent when they save. This happens when the "formatOnSave"-setting is enabled in VSCode and "clang-format" cannot be found. To fix this:
On MacOS
1. Install clang-format on your system: brew install clang-format 2. Install the clang-format plugin in VSCode
Release Notes
See CHANGELOG.md.
Description from the VS Code Marketplace listing.
- proto3
- Protocol Buffers
- snippet
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Ratings over time
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Installs on a log scale. Placement is projected from installs, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (4)Similar VS Code Marketplace Programming Languages plugins
All 20 vscode-proto3 alternativesData source
Install counts, average rating, and rating counts come from the public Visual Studio Marketplace gallery API. Installs are cumulative and exclude updates.
Listing: https://marketplace.visualstudio.com/items?itemName=zxh404.vscode-proto3. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.