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 protobuf+unsubscr...@googlegroups.com.
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