Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
google-proto-files
Advanced tools
The google-proto-files npm package provides access to Google's Protocol Buffers (protobuf) files. These files define the structure of data used by Google's APIs and services. By using this package, developers can easily integrate with Google's APIs by leveraging the predefined protobuf files.
Accessing Google Protobuf Files
This feature allows you to access the path to Google's protobuf files. The code sample demonstrates how to require the google-proto-files package and retrieve the path to a specific protobuf file, in this case, 'timestamp.proto'.
const protoFiles = require('google-proto-files');
const path = protoFiles('google/protobuf/timestamp.proto');
console.log(path);
Integrating with Google APIs
This feature demonstrates how to integrate with Google APIs using the protobuf files provided by google-proto-files. The code sample shows how to load the 'cloud_speech.proto' file and create a gRPC client for the Google Cloud Speech API.
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const protoFiles = require('google-proto-files');
const packageDefinition = protoLoader.loadSync(protoFiles('google/cloud/speech/v1/cloud_speech.proto'), {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const speechProto = grpc.loadPackageDefinition(packageDefinition).google.cloud.speech.v1;
const client = new speechProto.SpeechClient({
// Client configuration
});
console.log(client);
The @grpc/proto-loader package is used to load .proto files for use with gRPC in Node.js. It provides similar functionality to google-proto-files in terms of loading protobuf files, but it does not specifically provide access to Google's predefined protobuf files. Instead, it is a more general-purpose loader for any .proto files.
The protobufjs package is a comprehensive library for working with Protocol Buffers in JavaScript. It allows you to define, encode, decode, and verify protobuf messages. While it does not provide direct access to Google's protobuf files, it offers a wide range of features for working with protobufs in general.
All of the Google API's protocol buffer files
A comprehensive list of changes in each version may be found in the CHANGELOG.
Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.
Table of contents:
npm install google-proto-files
const protos = require('google-proto-files');
async function quickstart() {
// Get a directory path by executing as a function
const files = protos.getProtoPath('logging', 'v2');
console.log(files);
// node_modules/google-proto-files/google/logging/v2
// Get a path to the entry proto file for a specific API version
console.log(protos.pubsub.v1);
// node_modules/google-proto-files/google/pubsub/v1/pubsub.proto
// Load a proto which depends on google common protos.
const root1 = await protos.load('./cloudcats.proto');
const service1 = root1.lookup('example.MyService');
console.log(service1);
// Load protos synchronously
const root2 = protos.loadSync('./cloudcats.proto');
const service2 = root2.lookup('example.MyService');
console.log(service2);
}
quickstart();
Samples are in the samples/
directory. Each sample's README.md
has instructions for running its sample.
Sample | Source Code | Try it |
---|---|---|
Quickstart | source code |
The Google APIs Proto Files Node.js Client API Reference documentation also contains samples.
Our client libraries follow the Node.js release schedule. Libraries are compatible with all current active and maintenance versions of Node.js. If you are using an end-of-life version of Node.js, we recommend that you update as soon as possible to an actively supported LTS version.
Google's client libraries support legacy versions of Node.js runtimes on a best-efforts basis with the following warnings:
Client libraries targeting some end-of-life versions of Node.js are available, and
can be installed through npm dist-tags.
The dist-tags follow the naming convention legacy-(version)
.
For example, npm install google-proto-files@legacy-8
installs client libraries
for versions compatible with Node.js 8.
This library follows Semantic Versioning.
This library is considered to be stable. The code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with an extensive deprecation period. Issues and requests against stable libraries are addressed with the highest priority.
More Information: Google Cloud Platform Launch Stages
Contributions welcome! See the Contributing Guide.
Please note that this README.md
, the samples/README.md
,
and a variety of configuration files in this repository (including .nycrc
and tsconfig.json
)
are generated from a central template. To edit one of these files, make an edit
to its templates in
directory.
Apache Version 2.0
See LICENSE
FAQs
All of the Google API's protocol buffer files
We found that google-proto-files demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.