Changes in c_interface



BigARTM 3rdparty dependency had been upgraded from protobuf 2.6.1 to protobuf 3.0.0. This may affect you upgrade from previous version of bigartm. Pelase report any issues at

  • Change ArtmParseCollection to return CollectionParserInfo message

  • Add APIs to enable JSON serialization for all input and output protobuf messages

    • ArtmSetProtobufMessageFormatToJson()
    • ArtmSetProtobufMessageFormatToBinary()
    • ArtmProtobufMessageFormatIsJson()

    The default setting is, as before, to serialize all message into binary buffer. Note that for with json serialization one should use RegularizerConfig.config_json, ScoreConfig.config_json and ScoreData.data_json instead of RegularizerConfig.config, ScoreConfig.config and

  • Revisit documentation for c_interface

  • Change integer types in c_interface from int to int64_t (from stdint.h). This allows to validate 2 GB limit for protobuf messages, and also to passing larger objects in ArtmCopyRequestedObject.

  • Add ArtmReconfigureTopicName method to add/remove/reorder topic names

  • Support sparse format for external retrieval of theta and phi matrices


  • Removed ArtmCreateMasterComponent and ArtmReconfigureMasterComponent
  • Removed ArtmCreateModel and ArtmReconfigureModel
  • Removed ArtmAddBatch, ArtmInvokeIteration, ArtmWaitIdle, ArtmSynchronizeModel
  • Removed ArtmRequestRegularizerState
  • Renamed ArtmCopyRequestResult into ArtmCopyRequestedMessage
  • Renamed ArtmCopyRequestResultEx into ArtmCopyRequestedObject
  • Added ArtmClearThetaCache and ArtmClearScoreCache
  • Added ArtmRequestScoreArray and ArtmClearScoreArrayCache
  • Added GetArtmVersion to query for the version; returns a string in “<MAJOR>.<MINOR>.<PATCH>” format