| NEWS | R Documentation |
News for PackageRProtoBuf
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 (MichaelChirico 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 inconfigure.ac(Dirk)
Changes in RProtoBuf version 0.4.22 (2024-01-20)
Apply patch by Tomas Kalibera to support updated rtools to buildwith 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 continuousintegration 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 ProtocolBuffer 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 sevenstringinstances in one file (closes#89)
Changes in RProtoBuf version 0.4.18 (2021-12-15)
Support
string_viewinFindMethodByName()(AdamCozzette in#72).CI use was updated first at Travis, later at GitHub andnow usesr-ci (Dirk in#74 and (parts of)#76).
The (to the best of our knowledge) unused minimal RPCmechanism has been removed, retiring one method and one class aswell as the import of theRCurl package (Dirk in#76).
The
toJSON()method supports two (upstream) formattingtoggles (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 ProtoBuf3.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 theDESCRIPTIONfile (Dirk, also#71).
Changes in RProtoBuf version 0.4.16 (2020-03-19)
Added support for parsing and printing JSON (SiddharthaBagaria in#68 closing wishlist#61).
Switched
ByteSize()toByteSizeLong()to appeaseclang(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 bytinytest (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 afallback to the generic (Jarod Meng in#54 fixing#53)Recursive fields now handled by
identical()(Jarod Mengin#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 theC++ 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; seethis url for more.
Changes in RProtoBuf version 0.4.12 (2018-07-11)
Recursive serialization of sublists returning themselves isnow recognised (Jeffrey Shen in#38 fixing#37)
New function
readProtoFiles2to be consistent withprotoc(Siddhartha Bagaria in#40 fixing#39)Update Windows binary library used (Maciej Lach and JeroenOoms 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-introandRProtoBuf-quickrefvignettes were converted to Rmarkdown using the templates and stylefile 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 validclass attribute (Jeffey Shen in#29 fixing#28)
At the request of CRAN, correct one
.Call()argument toPACKAGE=; update routine registration accordingly
Changes in RProtoBuf version 0.4.9 (2017-03-06)
A new file
init.cwas added with calls toR_registerRoutines()andR_useDynamicSymbols()Symbol registration is enabled in
useDynLibSeveral missing
PACKAGE=arguments were added tothe corresponding.CallinvocationsTwo (internal) C++ functions were renamed with suffix
_cppto disambiguate them from R functions with the same nameAll of above were part of#26
Some editing corrections were made to the introductoryvignette (David Kretch in#25)
The 'configure.ac' file was updated, and renamed from theolder 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 referringto the Omegehat repository were updated tohttps://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 availableonly 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 3using custom-built .deb packages of version 3 (PR#16)
Improved build system with support for custom CXXFLAGS (CraigRadcliffe 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 otherminor cleanups to file modes and operations
Unit-test vignette no longer writes to
/tmpper CRANrequestThe new Windows toolchain (based on g++ 4.9.*) is supported
Changes in RProtoBuf version 0.4.3 (2015-08-25)
Declare additional imports frommethods in
NAMESPACE.Travis CI tests now run faster as all CRAN dependencies areinstalled 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 clarifylibrary dependencies, provide additonal references and conform tonow-current R packaging standards.
Changes in RProtoBuf version 0.4.2 (2014-12-10)
Address changes suggested by anonymous reviewers for ourJournal of Statistical Software submission.
Make
DescriptorandEnumDescriptorobjects subsettable with"[[".Add
length()method forDescriptorobjects.Add
names()method forMessage,Descriptor, andEnumDescriptorobjects.Clarify order of returned list for descriptor objects in
as.listdocumentation.Correct the definition of
as.listforEnumDescriptorstoreturn a proper list instead of a named vector.Update the default print methods to use
cat()withfill=TRUEinstead ofshow()to eliminate the confusing[1]since the classes inRProtoBuf are not vectorized.Add support for serializing function, language, andenvironment objects by falling back to R's native serializationwith
serialize_pbandunserialize_pbto make iteasy to serialize into a Protocol Buffer all of the more than 100datasets which come with R.Use
normalizePathinstead of creating a temporaryfile withfile.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 groupfunctionality.
Add a
CITATIONfile pointing to the arXiv.org preprint.Fix a bug in the
showmethod forEnumDescriptortypes.Import all top-level enums from imported
.protofiles.Removed duplicate enum value type from the unit tests thatcaused problems with the most recent libprotobuf-2.5. (without optionallow_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,andcan_serialize_pbplus documentation from Jeroen OomsRProtoBufUtils 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 ofexternal vignette builders, no longer need a
MakefileAdded missing methods to dollar completion list for Message,Descriptor, EnumValueDescriptor, and FileDescriptor classes.
Add missing export for
.DollarNamesEnumValueDescriptorto allow completion on that class.Add more than 15 additional pages to the main Intro vignettedocumenting better all of the S4 classes implemented by RProtoBuf,updating the type mapping tables to take into account 64-bitsupport, and documenting advanced features such as Extensions.
Added better error checking in EnumDescriptors to catch thecase when wrong types are provided.
Updated the FileDescriptor
name()method to accept a booleanfor full paths just like the genericname()method.Correct a bug that incorrectly dispatched
as.character()whenas.list()was called on Descriptor objects.Update FileDescriptor
$dispatch to work properly forthe names of fields defined in the FileDescriptor, instead ofjust returningNULLeven for types returned by$completion.Added a reservation for extension fields in the exampletutorial.Person schema.
Support setting int32 fields with character representationsand raise an R-level
stop()error if the provided string cannot be parsed as a 32-bit integer, rather than crashing the Rinstance.Update the project TODO file.
Add better documentation and tests for all of the above.
Corrected the handling of uint32 and fixed32 types in protocolbuffers 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 anunsigned integer class. These values are stored as doubles internallynow to avoid losing precision.
Added unit tests to verify behavior of RProtoBuf with extremevalues for uint32 types.
Removed old exception handling code and instead rely on themore modern Rcpp::stop method maintained in Rcpp.
Add better error messages when setting a repeated field ofmessages to inform the user which element index was of the wrong typeand what the expected type was.
Add an optional 'partial' argument to readASCII allowinguninitialized message fragments to be read in.
(internal) Added const qualifiers in more places throughoutthe C++ code for type safety.
(internal) Standardize coding conventions of the C++ files andrun them through clang-format for consistency. A STYLE file hasbeen submitted to R-Forge with details about the coding standardsand how they are enforced with Emacs and clang-format.
Applied changes suggested by Kevin Ushey to the
S4class handling to support both the currently releasedRcpp aswell 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 rawbyte fields in protocol buffers under certain circumstances.
Give a user friendly error message when seting an extension toa message of the wrong type instead of causing a C++ check failurethat terminates the Rsession.
Change object table lookup slightly to allow users to use the
<<-operator in code usingRProtoBuf without hitting astop()error in the lookup routine.Add missing
enum_typemethod and improve show method forEnumValueDescriptors.Improve documentation and tests for all of the above.
Rewrote
tests/script callingRUnit tests
Changes in RProtoBuf version 0.3.1 (2013-09-13)
Added support for setting and getting 64-bit integer types ascharacter strings of decimal integers to work around R's lack ofnative 64-bit integer types.
Added better error handling, documentation, and tests to theextensions support (getExtension and setExtension).
Add support to P for returning extension descriptors.
Improved error messages to include field names when invalidfields are specified to protocol buffer messages with new, update, etc.
Improved configure to detect and pass -std=c++0x if it isavailable to enable long long 64-bit integer support in Rcpp.
Improved configure in the case when pkg-config is notavailable or does not know about the google protocol bufferincludes.
Replaced newly deprecated Rcpp macros with a simplified macrofunctionality to avoid warnings on the latest development version ofRcpp.
Changes in RProtoBuf version 0.3 (2013-07-13)
Added support for Protocol Buffer extensions through the newgetExtension and setExtension methods for Message objects, and addedtop-level extensions to the descriptor pool.
Added more user-friendly
show()methods for Messages,Descriptors, and other RProtoBuf objects. A common source ofconfusion on the mailing lists is to confuse Messages andDescriptors. The newshow()methods succinctly display moreinformation about e.g. the number of set fields in a message tomake it a little clearer to users what type of object they areworking with.Added has method for EnumDescriptor objects to test existanceof a named constant in an enumeration, and fix a bug in the lengthmethod for these objects.
Added a number method for EnumValueDescriptor objects toreturn 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 fieldswithhas() 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 storageand 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, andalso add new unit test for this
test a a protocol buffer for missing required fields beforeserializing 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' whichitself 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 alltarget
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 bychanges in Rcpp
Changes in RProtoBuf version 0.1-0 (2010-02-01)
Initial CRAN release