protocolbuffers/protobuf-javascript là dự án mã nguồn mở trên GitHub, viết chủ yếu bằng JavaScript, với 470 sao.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Support for ES6-style imports is not implemented yet. Browsers can
be supported by using Browserify, webpack, Closure Compiler, etc. to
resolve imports at compile time.
To use Protocol Buffers with JavaScript, you need two main components:
The protobuf runtime library. You can install this with
npm install google-protobuf, or use the files in this directory.
If npm is not being used, as of 3.3.0, the files needed are located in binary subdirectory;
arith.js, constants.js, decoder.js, encoder.js, map.js, message.js, reader.js, utils.js, writer.js
The Protocol Compiler protoc. This translates .proto files
into .js files. The compiler is not currently available via
npm, but you can download a pre-built binary
on GitHub
(look for the protoc-*.zip files under Downloads).
Project Status
As of v4.0.0, you can directly install the protoc-gen-js plugin from npm as
@protocolbuffers/protoc-gen-js.
Support Status
We currently do not have staffing for more than minimal support for this open
source project. We will answer questions and triage any issues.
Contributing
Contributions should preserve existing behavior where possible. Current
customers rely on applications continuing to work across minor version upgrades.
We encourage small targeted contributions. Thanks!
Setup
First, obtain the Protocol Compiler. The easiest way is to download
a pre-built binary from https://github.com/protocolbuffers/protobuf/releases.
If you want, you can compile protoc from source instead. To do this
follow the instructions in the top-level
README.
Once you have protoc compiled, you can run the tests provided along with our
project to examine whether it can run successfully. In order to do this, you
should download the Protocol Buffer source code from the release page with the
link above. Then extract the source code and navigate to the folder named js
containing a package.json file and a series of test files. In this folder, you
can run the commands below to run the tests automatically.
$ npm install
$ PROTOC_INC=/usr/include/google/protobuf npm test
PROTOC_INC specifies the protobuf include path. By default, we use protoc
located from PATH. Optionally, you can use the PROTOC enviroment variable to
specify an alternative protoc.
This will run two separate copies of the tests: one that uses
Closure Compiler style imports and one that uses CommonJS imports.
You can see all the CommonJS files in commonjs_out/.
If all of these tests pass, you know you have a working setup.
Using Protocol Buffers in your own project
To use Protocol Buffers in your own project, you need to integrate
the Protocol Compiler into your build system. The details are a
little different depending on whether you are using Closure imports
or CommonJS imports:
Closure Imports
If you want to use Closure imports, your build should run a command
like this:
For Closure imports, protoc will generate a single output file
(myproto_libs.js in this example). The generated file will goog.provide()
all of the types defined in your .proto files. For example, for the unit
tests the generated files contain many goog.provide statements like:
The generated code will also goog.require() many types in the core library,
and they will require many types in the Google Closure library. So make sure
that your goog.provide() / goog.require() setup can find all of your
generated code, the core library .js files in this directory, and the
Google Closure library itself.
Once you've done this, you should be able to import your types with
statements like:
goog.require('proto.my.package.MyMessage');
var message = proto.my.package.MyMessage();
If unfamiliar with Closure or its compiler, consider reviewing
Closure documentation.
CommonJS imports
If you want to use CommonJS imports, your build should run a command
like this:
For CommonJS imports, protoc will spit out one file per input file
(so messages_pb.js and base_pb.js in this example). The generated
code will depend on the core runtime, which should be in a file called
google-protobuf.js. If you are installing from npm, this file should
already be built and available. If you are running from GitHub, you need
to build it first by running:
$ gulp dist
Once you've done this, you should be able to import your types with
statements like:
var messages = require('./messages_pb');
var message = new messages.MyMessage();
The --js_out flag
The syntax of the --js_out flag is:
--js_out=[OPTIONS:]output_dir
Where OPTIONS are separated by commas. Options are either opt=val or
just opt (for options that don't take a value). The available options
are specified and documented in the GeneratorOptions struct in
generator/js_generator.h.
Some examples:
--js_out=library=myprotos_lib.js,binary:.: this contains the options
library=myprotos.lib.js and binary and outputs to the current directory.
The import_style option is left to the default, which is closure.
--js_out=import_style=commonjs,binary:protos: this contains the options
import_style=commonjs and binary and outputs to the directory protos.
import_style=commonjs_strict doesn't expose the output on the global scope.
API
The API is not well-documented yet. Here is a quick example to give you an
idea of how the library generally works:
var message = new MyMessage();
message.setName("John Doe");
message.setAge(25);
message.setPhoneNumbers(["800-555-1212", "800-555-0000"]);
// Serializes to a UInt8Array.
var bytes = message.serializeBinary();
var message2 = MyMessage.deserializeBinary(bytes);
For more examples, see the tests. You can also look at the generated code
to see what methods are defined for your generated messages.
Đọc thêm về protocolbuffers/protobuf-javascript ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/protocolbuffers/protobuf-javascript là nguồn chính thức.
protocolbuffers/protobuf-javascript có bao nhiêu sao?
protocolbuffers/protobuf-javascript có 470 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/protocolbuffers/protobuf-javascript. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
protocolbuffers/protobuf-javascript có phải mã nguồn mở không?
Có — protocolbuffers/protobuf-javascript phát hành theo license BSD-3-Clause, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/protocolbuffers/protobuf-javascript.
protocolbuffers/protobuf-javascript còn đang phát triển không?
Commit gần nhất trên protocolbuffers/protobuf-javascript là 1 tháng trước (theo timestamp GitHub). Repo có 91 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
protocolbuffers/protobuf-javascript dùng license gì?
protocolbuffers/protobuf-javascript phát hành theo license BSD-3-Clause. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
protocolbuffers/protobuf-javascript là gì?
protocolbuffers/protobuf-javascript (protocolbuffers/protobuf-javascript) là dự án JavaScript TopGit theo dõi. Tính tới lần đồng bộ gần nhất, repo có 470 sao.
protocolbuffers/protobuf-javascript viết bằng ngôn ngữ gì?
protocolbuffers/protobuf-javascript chủ yếu viết bằng JavaScript. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
Chưa chắc protobuf-javascript có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về protobuf-javascript.