| NEWS | R Documentation | 
News for Package RProtoBuf
Changes in RProtoBuf version 0.4.24 (2025-03-31)
- Add bindings to EnumValueDescriptor::name (Mike Kruskal in #108) 
- Replace EXTPTR_PTR with R_ExternalPtrAddr (Dirk) 
Changes in RProtoBuf version 0.4.23 (2025-01-14)
- More robust tests using - toTextFormat()(Xufei Tan in #99 addressing #98)
- Various standard packaging updates to CI and badges (Dirk) 
- Improvements to string construction in error messages (Michael Chirico in #102 and #103) 
- Accommodate ProtoBuf 26.x and later (Matteo Gianella in #104) 
- Accommodate ProtoBuf 6.30.9 and later (Lev Kandel in #106) 
- Correct - bashismissues in- configure.ac(Dirk)
Changes in RProtoBuf version 0.4.22 (2024-01-20)
- Apply patch by Tomas Kalibera to support updated rtools to build with newer ProtoBuf releases on windows 
Changes in RProtoBuf version 0.4.21 (2023-12-13)
- Package now builds with ProtoBuf >= 22.x thanks to Matteo Gianella (#93 addressing #92). 
- An Alpine 3.19-based workflow was added to test this in continuous integration thanks to a suggestion by Sebastian Meyer. 
- A large number of old-style - .Callwere updated (#96).
- Several packaging, dcoumentation and testing items were updated. 
Changes in RProtoBuf version 0.4.20 (2022-11-02)
- Two function prototype were updated for - clang-15.
- GitHub Actions were updated to checkout version 3. 
- One more http:// URL was updated to https:// 
- The package compilation is now done with C++17 as the Protocol Buffer headers require it (and - clang-15nags otherwise).
Changes in RProtoBuf version 0.4.19 (2022-05-06)
- Small cleanups to repository 
- Raise minimum Protocol Buffers version to 3.3 (closes #83) 
- Update package version display, added to startup message 
- Add missing explicit - std::on seven- stringinstances in one file (closes #89)
Changes in RProtoBuf version 0.4.18 (2021-12-15)
- Support - string_viewin- FindMethodByName()(Adam Cozzette in #72).
- CI use was updated first at Travis, later at GitHub and now uses r-ci (Dirk in #74 and (parts of) #76). 
- The (to the best of our knowledge) unused minimal RPC mechanism has been removed, retiring one method and one class as well as the import of the RCurl package (Dirk in #76). 
- The - toJSON()method supports two (upstream) formatting toggles (Vitali Spinu in #79 with minor edit by Dirk).
- Windows UCRT builds are now supported (Jeroen in #81, Dirk and Tomas Kalibera in #82). 
Changes in RProtoBuf version 0.4.17 (2020-03-26)
- Condition use of - ByteSizeLong()on building with ProtoBuf 3.6.0 or later (Dirk in #71 fixing #70).
- The JSON unit tests are skipped if ProtoBuf 2.* is used (Dirk, also #71). 
- The - configurescript now extracts the version from the- DESCRIPTIONfile (Dirk, also #71).
Changes in RProtoBuf version 0.4.16 (2020-03-19)
- Added support for parsing and printing JSON (Siddhartha Bagaria in #68 closing wishlist #61). 
- Switched - ByteSize()to- ByteSizeLong()to appease- clang(Dirk).
Changes in RProtoBuf version 0.4.15 (2020-02-08)
- Repeated Message and Group objects are now returned correctly (Dirk in #64 fixing #62). 
- The unit tests are now run by tinytest (Dirk in #65). 
- The vignettes are now included pre-made (Dirk in #67). 
Changes in RProtoBuf version 0.4.14 (2019-06-30)
- An - all.equal.Messagemethod was added to avoid a fallback to the generic (Jarod Meng in #54 fixing #53)
- Recursive fields now handled by - identical()(Jarod Meng in #57 fixing #56)
- Update Windows build infrastructure (Jeroen) 
Changes in RProtoBuf version 0.4.13 (2018-11-03)
- The - configuresetup is more robust with respect to the C++ setup (CRAN request).
-  POSIXltelements are now properly serialized too (Jeffrey Shen in #48 and #50 fixing #47)
- Added two Dockerfiles for continuous integration and use; see this url for more. 
Changes in RProtoBuf version 0.4.12 (2018-07-11)
- Recursive serialization of sublists returning themselves is now recognised (Jeffrey Shen in #38 fixing #37) 
- New function - readProtoFiles2to be consistent with- protoc(Siddhartha Bagaria in #40 fixing #39)
- Update Windows binary library used (Maciej Lach and Jeroen Ooms in #42 and follow-up commits) 
- New unit tests for new functionality (Siddhartha Bagaria in #45) 
Changes in RProtoBuf version 0.4.11 (2017-10-03)
- The - RProtoBuf-introand- RProtoBuf-quickrefvignettes were converted to Rmarkdown using the templates and style file from the pinp package.
- A few minor internal upgrades 
Changes in RProtoBuf version 0.4.10 (2017-08-13)
- More careful operation in deserializer checking for a valid class attribute (Jeffey Shen in #29 fixing #28) 
- At the request of CRAN, correct one - .Call()argument to- PACKAGE=; update routine registration accordingly
Changes in RProtoBuf version 0.4.9 (2017-03-06)
- A new file - init.cwas added with calls to- R_registerRoutines()and- R_useDynamicSymbols()
- Symbol registration is enabled in - useDynLib
- Several missing - PACKAGE=arguments were added to the corresponding- .Callinvocations
- Two (internal) C++ functions were renamed with suffix - _cppto disambiguate them from R functions with the same name
- All of above were part of #26 
- Some editing corrections were made to the introductory vignette (David Kretch in #25) 
- The 'configure.ac' file was updated, and renamed from the older converntion 'configure.in', along with 'src/Makevars'. (PR #24 fixing #23) 
Changes in RProtoBuf version 0.4.8 (2017-01-17)
Changes in RProtoBuf version 0.4.7 (2016-10-27)
- At the request of CRAN, two documentation instances referring to the Omegehat repository were updated to https://omegahat.net/ 
Changes in RProtoBuf version 0.4.6 (2016-09-08)
- Support for serializing zero-length objects was added (PR #18 addressing #13) 
- S4 objects are natively encoded (also PR #18) 
- The vignette based on the JSS paper no longer uses a macro available only with the R-devel version of jss.cls, and hence builds on all R versions 
Changes in RProtoBuf version 0.4.5 (2016-08-29)
- Support for version 3 of the Protcol Buffers API 
- Added 'syntax = "proto2";' to all proto files (PR #17) 
- Updated Travis CI script to test against both versions 2 and 3 using custom-built .deb packages of version 3 (PR #16) 
- Improved build system with support for custom CXXFLAGS (Craig Radcliffe in PR #15) 
Changes in RProtoBuf version 0.4.4 (2016-07-10)
- New vignette based on JSS publication (v71 i02) 
- Some documentation enhancements were made, as well as other minor cleanups to file modes and operations 
- Unit-test vignette no longer writes to - /tmpper CRAN request
- The new Windows toolchain (based on g++ 4.9.*) is supported 
Changes in RProtoBuf version 0.4.3 (2015-08-25)
- Declare additional imports from methods in - NAMESPACE.
- Travis CI tests now run faster as all CRAN dependencies are installed as binaries. 
- The - tools/winlibs.Rscript now tests for R (< 3.3.0) before calling the (soon-to-be phased out)- setInternet2()function.
- Several small edits were made to - DESCRIPTIONto clarify library dependencies, provide additonal references and conform to now-current R packaging standards.
Changes in RProtoBuf version 0.4.2 (2014-12-10)
- Address changes suggested by anonymous reviewers for our Journal of Statistical Software submission. 
- Make - Descriptorand- EnumDescriptorobjects subsettable with "- [[".
- Add - length()method for- Descriptorobjects.
- Add - names()method for- Message,- Descriptor, and- EnumDescriptorobjects.
- Clarify order of returned list for descriptor objects in - as.listdocumentation.
- Correct the definition of - as.listfor- EnumDescriptorsto return a proper list instead of a named vector.
- Update the default print methods to use - cat()with- fill=TRUEinstead of- show()to eliminate the confusing- [1]since the classes in RProtoBuf are not vectorized.
- Add support for serializing function, language, and environment objects by falling back to R's native serialization with - serialize_pband- unserialize_pbto make it easy to serialize into a Protocol Buffer all of the more than 100 datasets which come with R.
- Use - normalizePathinstead of creating a temporary file with- file.createwhen getting absolute path names.
- Add unit tests for all of the above. 
Changes in RProtoBuf version 0.4.1 (2014-03-25)
- Document and add a test for the deprecated group functionality. 
- Add a - CITATIONfile pointing to the arXiv.org preprint.
- Fix a bug in the - showmethod for- EnumDescriptortypes.
- Import all top-level enums from imported - .protofiles.
- Removed duplicate enum value type from the unit tests that caused problems with the most recent libprotobuf-2.5. (without option allow_alias). 
Changes in RProtoBuf version 0.4.0 (2014-01-14)
- Changes to support CRAN builds for MS Windows. 
- Added functions - serialize_pb,- unserialize_pb, and- can_serialize_pbplus documentation from Jeroen Ooms RProtoBufUtils package.
- New dir - inst/pythonwith some Python examples.
- Added Jeroen Ooms as author. 
- Vignettes have been converted to the R 3.0.0 or later use of external vignette builders, no longer need a - Makefile
- Added missing methods to dollar completion list for Message, Descriptor, EnumValueDescriptor, and FileDescriptor classes. 
- Add missing export for - .DollarNamesEnumValueDescriptor to allow completion on that class.
- Add more than 15 additional pages to the main Intro vignette documenting better all of the S4 classes implemented by RProtoBuf, updating the type mapping tables to take into account 64-bit support, and documenting advanced features such as Extensions. 
- Added better error checking in EnumDescriptors to catch the case when wrong types are provided. 
- Updated the FileDescriptor - name()method to accept a boolean for full paths just like the generic- name()method.
- Correct a bug that incorrectly dispatched - as.character()when- as.list()was called on Descriptor objects.
- Update FileDescriptor - $dispatch to work properly for the names of fields defined in the FileDescriptor, instead of just returning- NULLeven for types returned by- $completion.
- Added a reservation for extension fields in the example tutorial.Person schema. 
- Support setting int32 fields with character representations and raise an R-level - stop()error if the provided string can not be parsed as a 32-bit integer, rather than crashing the R instance.
- Update the project TODO file. 
- Add better documentation and tests for all of the above. 
- Corrected the handling of uint32 and fixed32 types in protocol buffers to ensure that they work with numbers as large as 2^32 - 1, which is larger than an integer can hold in R since R does not have an unsigned integer class. These values are stored as doubles internally now to avoid losing precision. 
- Added unit tests to verify behavior of RProtoBuf with extreme values for uint32 types. 
- Removed old exception handling code and instead rely on the more modern Rcpp::stop method maintained in Rcpp. 
- Add better error messages when setting a repeated field of messages to inform the user which element index was of the wrong type and what the expected type was. 
- Add an optional 'partial' argument to readASCII allowing uninitialized message fragments to be read in. 
- (internal) Added const qualifiers in more places throughout the C++ code for type safety. 
- (internal) Standardize coding conventions of the C++ files and run them through clang-format for consistency. A STYLE file has been submitted to R-Forge with details about the coding standards and how they are enforced with Emacs and clang-format. 
- Applied changes suggested by Kevin Ushey to the - S4class handling to support both the currently released Rcpp as well as the currently pending next version.
Changes in RProtoBuf version 0.3.2 (2013-12-15)
- Fixed a bug that erroneously prevented users from setting raw byte fields in protocol buffers under certain circumstances. 
- Give a user friendly error message when seting an extension to a message of the wrong type instead of causing a C++ check failure that terminates the Rsession. 
- Change object table lookup slightly to allow users to use the - <<-operator in code using RProtoBuf without hitting a- stop()error in the lookup routine.
- Add missing - enum_typemethod and improve show method for EnumValueDescriptors.
- Improve documentation and tests for all of the above. 
- Rewrote - tests/script calling RUnit tests
Changes in RProtoBuf version 0.3.1 (2013-09-13)
- Added support for setting and getting 64-bit integer types as character strings of decimal integers to work around R's lack of native 64-bit integer types. 
- Added better error handling, documentation, and tests to the extensions support (getExtension and setExtension). 
- Add support to P for returning extension descriptors. 
- Improved error messages to include field names when invalid fields are specified to protocol buffer messages with new, update, etc. 
- Improved configure to detect and pass -std=c++0x if it is available to enable long long 64-bit integer support in Rcpp. 
- Improved configure in the case when pkg-config is not available or does not know about the google protocol buffer includes. 
- Replaced newly deprecated Rcpp macros with a simplified macro functionality to avoid warnings on the latest development version of Rcpp. 
Changes in RProtoBuf version 0.3 (2013-07-13)
- Added support for Protocol Buffer extensions through the new getExtension and setExtension methods for Message objects, and added top-level extensions to the descriptor pool. 
- Added more user-friendly - show()methods for Messages, Descriptors, and other RProtoBuf objects. A common source of confusion on the mailing lists is to confuse Messages and Descriptors. The new- show()methods succinctly display more information about e.g. the number of set fields in a message to make it a little clearer to users what type of object they are working with.
- Added has method for EnumDescriptor objects to test existance of a named constant in an enumeration, and fix a bug in the length method for these objects. 
- Added a number method for EnumValueDescriptor objects to return the number of a named enumeration constant directly. 
- Improved documentation and unit tests. 
Changes in RProtoBuf version 0.2.6 (2012-10-04)
- Applied several more patches by Murray to - correct '_' and '__' mismatches in wrapper calls 
- update a few manual pages for style, and add examples 
- fix a bug where NAs were silently treated as TRUE for logical/bool types 
- fix a bug that caused crashes when adding vectors to optional fields 
- fix bugs in readASCII that returned empty protocol buffers when the file or connection could not be opened 
- distinguish between non-existant and not-set fieldswith has() by returning NULL in the former case. 
- fix a bug that caused non-deterministic behavior when setting a repeated message field in a protobuf to a single Message. 
- add unit tests for all of the above. 
 
- Added Murray to Authors: field in DESCRIPTION 
- Removed old and unconvincing example on RProtoBuf for storage and serialization in an imagined HighFrequencyFinance context 
Changes in RProtoBuf version 0.2.5 (2012-08-08)
- Applied patches by Murray to - correctly deal with nested Protocol Buffer definitions, and also add new unit test for this 
- test a a protocol buffer for missing required fields before serializing it, also add a unit test 
- add a small stylistic fix and examples to the 'add.Rd' manual page 
 
- Moved inst/doc/ to vignettes/ per newer CRAN Policy 
Changes in RProtoBuf version 0.2.4 (2012-05-15)
- Applied several patches kindly supplied by Murray Stokely to - properly work with repeated strings 
- correct C++ function naming in a few instances 
- add an example of ascii export/import of messages 
 
- Suppport g++-4.7 and stricter #include file checking by adding unistd 
- Made small improvements to the startup code 
Changes in RProtoBuf version 0.2.3 (2011-04-12)
- Protect UINT64 and INT64 with '#ifdef RCPP_HAS_LONG_LONG' which itself is valid with either g++ <= 4.4, or newer versions if the -std=c++0x is used 
- The documentation Makefile now uses the $R_HOME environment variable 
- The documentation Makefile no longer calls clean in the all target 
Changes in RProtoBuf version 0.2.2 (2011-01-11)
- Applied two patches by Murray Stokely which - correct a typo preventing some functions from being called, 
- add bounds checking in call to google protobuf library, 
- add a new name method 
- add a tiny unit test for the above 
- add more graceful error handling 
- add support for import patterns other than .proto$, 
- add simple reading file that does not exist (exception) test 
- add simple repeated field unit test 
 
Changes in RProtoBuf version 0.2.1 (2010-10-18)
- Support for raw bytes added thanks to a patch by Koert Kuipers 
Changes in RProtoBuf version 0.2.0 (2010-09-10)
- Second release with numerous internal changes made possible by changes in Rcpp 
Changes in RProtoBuf version 0.1-0 (2010-02-01)
- Initial CRAN release