I'm trying to parse a protobuf-packet in the browser and while trying to 
get this working encountered several questions:

1. Is it possible to use protobuf without node and the closure library?

2. When I use the closure-builder to build a javascript-file that I can run 
in the browser I encounter the error "depstree.NamespaceNotFoundError: 
Namespace "jspb.BinaryReader" never provided."
When I grep for this thing, I see two things

    a. The npm-installed "google-protobuf"-module contains multiple usages 
but no file that contains "goog.provide('jspb.BinaryReader')"

    b. The manually downloaded protobuf-repository contains the file 
"js/binary/reader.js" that apparently contains the definition.

2. The fact that the protobuf-repository version contains the 
"jsbp.BinaryReader" made me play around with this option.
After playing around for a while, I figured out, that it is necessary to 
run "npm install" before "gulp dist" as pointed out in the documentation 
(https://developers.google.com/protocol-buffers/docs/reference/javascript-generated).
 
This generates the "google-protobuf.js" file.

Is this the correct way? Does this answer my first question with "no" - as 
this step requires node?

3. I now tried to run the "closure-builder" again (I use the closure 
library version that was installed in the previous step):
./protobuf/js/node_modules/google-closure-library/closure/bin/build/closurebuilder.py
 
\
--root="protobuf/js" \
--root="testJS/" \
--namespace="proto.test"
The folder "testJS" contains the javascript-files produced by protoc.

This produces the error:

depstree.MultipleProvideError: Namespace "protobuf.runtime.KernelTest" 
provided more than once in sources:
PathSource protobuf/js/experimental/runtime/kernel/kernel_repeated_test.js
PathSource protobuf/js/experimental/runtime/kernel/kernel_test.js

My next idea was to include only the subfolders of "protobuf/js" that I 
need - however, this doesn't work, as I need to include 
"protobuf/js/message.js" because this file contains 
"goog.provide('jspb.Message')" - the definition of "jsbp.Message".

How can I handle this? Do I need to include all files individually with the 
"-i" option? I have noticed, that there is an exclude option on the current 
master of protobuf (which seems to break the "closure-builder" on the 
current master branch - but apparently there is already a fix underway) - 
do I need to use this option?

4. Final question - does all this stuff make sense? Is anybody using a 
similar approach or is there a different, simpler way to get protobuf 
working in a browser?

Thanks
ou

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/82518d50-c4c6-4293-8d72-156a430ce1bbn%40googlegroups.com.

Reply via email to