couchbase 3.5.4 → 3.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/CMakeLists.txt +8 -6
  4. data/ext/cache/cpm/{CPM_0.38.6.cmake → CPM_0.40.5.cmake} +152 -22
  5. data/ext/cache/extconf_include.rb +3 -3
  6. data/ext/cache/mozilla-ca-bundle.crt +94 -118
  7. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  8. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/CMakeLists.txt +30 -6
  9. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/utils.cmake +13 -2
  10. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger-inl.h +5 -7
  11. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/mpmc_blocking_q.h +3 -3
  12. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os-inl.h +3 -3
  13. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool-inl.h +3 -8
  14. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool.h +3 -14
  15. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/base.h +47 -31
  16. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format-inl.h +32 -8
  17. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format.h +22 -14
  18. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ranges.h +1 -1
  19. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/mdc.h +4 -0
  20. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter-inl.h +16 -2
  21. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink.h +1 -1
  22. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink.h +4 -4
  23. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/callback_sink.h +1 -1
  24. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/daily_file_sink.h +3 -0
  25. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/hourly_file_sink.h +2 -0
  26. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/msvc_sink.h +1 -1
  27. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +1 -1
  28. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/syslog_sink.h +3 -2
  29. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +9 -0
  30. data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/version.h +2 -2
  31. data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/format.cc → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/src/bundled_fmtlib_format.cpp} +10 -5
  32. data/ext/couchbase/CMakeLists.txt +3 -2
  33. data/ext/couchbase/cmake/APKBUILD.in +54 -0
  34. data/ext/couchbase/cmake/Backtrace.cmake +3 -1
  35. data/ext/couchbase/cmake/CPM.cmake +1 -1
  36. data/ext/couchbase/cmake/CompilerWarnings.cmake +0 -5
  37. data/ext/couchbase/cmake/Packaging.cmake +174 -11
  38. data/ext/couchbase/cmake/RPath.cmake +10 -0
  39. data/ext/couchbase/cmake/Testing.cmake +0 -4
  40. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +7 -26
  41. data/ext/couchbase/cmake/VersionInfo.cmake +4 -0
  42. data/ext/couchbase/cmake/build_version.hxx.in +1 -0
  43. data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +2 -2
  44. data/ext/couchbase/cmake/couchbase_cxx_client.pc.in +2 -2
  45. data/ext/couchbase/core/agent_config.cxx +1 -1
  46. data/ext/couchbase/core/agent_group_config.cxx +1 -1
  47. data/ext/couchbase/core/bucket.cxx +25 -23
  48. data/ext/couchbase/core/bucket.hxx +2 -1
  49. data/ext/couchbase/core/cluster.cxx +9 -9
  50. data/ext/couchbase/core/cluster.hxx +2 -1
  51. data/ext/couchbase/core/cluster_agent_config.cxx +1 -1
  52. data/ext/couchbase/core/collections_component.cxx +1 -1
  53. data/ext/couchbase/core/columnar/agent_config.cxx +2 -2
  54. data/ext/couchbase/core/columnar/error.hxx +0 -1
  55. data/ext/couchbase/core/columnar/query_component.cxx +2 -2
  56. data/ext/couchbase/core/config_profiles.cxx +1 -1
  57. data/ext/couchbase/core/core_sdk_shim.cxx +1 -1
  58. data/ext/couchbase/core/crud_component.cxx +1 -1
  59. data/ext/couchbase/core/design_document_namespace_fmt.hxx +1 -1
  60. data/ext/couchbase/core/diagnostics_fmt.hxx +1 -1
  61. data/ext/couchbase/core/document_id.cxx +1 -1
  62. data/ext/couchbase/core/document_id_fmt.hxx +1 -1
  63. data/ext/couchbase/core/error_context/analytics_json.hxx +3 -1
  64. data/ext/couchbase/core/error_context/key_value_json.hxx +1 -1
  65. data/ext/couchbase/core/error_context/query_public_json.hxx +1 -1
  66. data/ext/couchbase/core/error_context/subdocument_json.hxx +1 -1
  67. data/ext/couchbase/core/fmt/key_value_error_map_attribute.hxx +1 -1
  68. data/ext/couchbase/core/fmt/key_value_extended_error_info.hxx +1 -1
  69. data/ext/couchbase/core/fmt/key_value_status_code.hxx +1 -1
  70. data/ext/couchbase/core/http_component.cxx +3 -3
  71. data/ext/couchbase/core/impl/analytics.cxx +1 -0
  72. data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +1 -1
  73. data/ext/couchbase/core/impl/cluster.cxx +55 -18
  74. data/ext/couchbase/core/impl/collection.cxx +40 -15
  75. data/ext/couchbase/core/impl/date_range.cxx +2 -2
  76. data/ext/couchbase/core/impl/date_range_query.cxx +2 -2
  77. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +1 -1
  78. data/ext/couchbase/core/impl/error.cxx +27 -4
  79. data/ext/couchbase/core/impl/expiry.cxx +2 -2
  80. data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +1 -2
  81. data/ext/couchbase/core/impl/get_replica.hxx +2 -0
  82. data/ext/couchbase/core/impl/key_value_error_context.cxx +6 -4
  83. data/ext/couchbase/core/impl/lookup_in_replica.hxx +2 -0
  84. data/ext/couchbase/core/impl/numeric_range.cxx +1 -1
  85. data/ext/couchbase/core/impl/observe_poll.cxx +7 -7
  86. data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
  87. data/ext/couchbase/core/impl/query.cxx +1 -0
  88. data/ext/couchbase/core/impl/query_error_context.cxx +3 -2
  89. data/ext/couchbase/core/impl/replica_utils.cxx +5 -5
  90. data/ext/couchbase/core/impl/replica_utils.hxx +2 -1
  91. data/ext/couchbase/core/impl/scope.cxx +5 -6
  92. data/ext/couchbase/core/impl/search.cxx +3 -1
  93. data/ext/couchbase/core/io/config_tracker.cxx +1 -1
  94. data/ext/couchbase/core/io/dns_client.cxx +23 -8
  95. data/ext/couchbase/core/io/http_command.hxx +2 -2
  96. data/ext/couchbase/core/io/http_parser.cxx +1 -1
  97. data/ext/couchbase/core/io/http_session.cxx +4 -0
  98. data/ext/couchbase/core/io/http_session.hxx +4 -2
  99. data/ext/couchbase/core/io/mcbp_command.hxx +2 -2
  100. data/ext/couchbase/core/key_value_config.cxx +2 -2
  101. data/ext/couchbase/core/logger/logger.cxx +1 -1
  102. data/ext/couchbase/core/logger/logger.hxx +1 -1
  103. data/ext/couchbase/core/management/rbac_fmt.hxx +1 -1
  104. data/ext/couchbase/core/mcbp/operation_queue.cxx +1 -1
  105. data/ext/couchbase/core/mcbp/packet.cxx +1 -1
  106. data/ext/couchbase/core/meta/features.hxx +16 -0
  107. data/ext/couchbase/core/meta/version.cxx +48 -7
  108. data/ext/couchbase/core/operations/document_analytics.cxx +23 -17
  109. data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
  110. data/ext/couchbase/core/operations/document_append.hxx +2 -0
  111. data/ext/couchbase/core/operations/document_decrement.hxx +2 -0
  112. data/ext/couchbase/core/operations/document_exists.hxx +2 -0
  113. data/ext/couchbase/core/operations/document_get.hxx +2 -0
  114. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +5 -4
  115. data/ext/couchbase/core/operations/document_get_and_lock.hxx +2 -0
  116. data/ext/couchbase/core/operations/document_get_and_touch.hxx +2 -0
  117. data/ext/couchbase/core/operations/document_get_any_replica.hxx +5 -3
  118. data/ext/couchbase/core/operations/document_get_projected.hxx +2 -0
  119. data/ext/couchbase/core/operations/document_increment.hxx +2 -0
  120. data/ext/couchbase/core/operations/document_insert.hxx +2 -0
  121. data/ext/couchbase/core/operations/document_lookup_in.hxx +2 -0
  122. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +5 -3
  123. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +5 -3
  124. data/ext/couchbase/core/operations/document_mutate_in.hxx +2 -0
  125. data/ext/couchbase/core/operations/document_prepend.hxx +2 -0
  126. data/ext/couchbase/core/operations/document_query.hxx +1 -0
  127. data/ext/couchbase/core/operations/document_remove.hxx +2 -0
  128. data/ext/couchbase/core/operations/document_replace.hxx +2 -0
  129. data/ext/couchbase/core/operations/document_search.hxx +1 -0
  130. data/ext/couchbase/core/operations/document_touch.hxx +2 -0
  131. data/ext/couchbase/core/operations/document_unlock.hxx +2 -0
  132. data/ext/couchbase/core/operations/document_upsert.hxx +2 -0
  133. data/ext/couchbase/core/operations/document_view.hxx +1 -0
  134. data/ext/couchbase/core/operations/http_noop.hxx +2 -0
  135. data/ext/couchbase/core/operations/management/CMakeLists.txt +0 -1
  136. data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +1 -1
  137. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +1 -0
  138. data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +1 -1
  139. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +1 -0
  140. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +1 -0
  141. data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +1 -1
  142. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +1 -0
  143. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +1 -1
  144. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +1 -0
  145. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +1 -1
  146. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  147. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +1 -0
  148. data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +1 -1
  149. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +1 -0
  150. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +1 -0
  151. data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +1 -1
  152. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +1 -0
  153. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +1 -0
  154. data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +1 -1
  155. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +1 -0
  156. data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +1 -1
  157. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +1 -0
  158. data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +24 -16
  159. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +4 -3
  160. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +1 -0
  161. data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +4 -3
  162. data/ext/couchbase/core/operations/management/bucket_create.hxx +1 -0
  163. data/ext/couchbase/core/operations/management/bucket_describe.cxx +1 -1
  164. data/ext/couchbase/core/operations/management/bucket_describe.hxx +1 -0
  165. data/ext/couchbase/core/operations/management/bucket_drop.cxx +1 -1
  166. data/ext/couchbase/core/operations/management/bucket_drop.hxx +1 -0
  167. data/ext/couchbase/core/operations/management/bucket_flush.cxx +1 -1
  168. data/ext/couchbase/core/operations/management/bucket_flush.hxx +1 -0
  169. data/ext/couchbase/core/operations/management/bucket_get.cxx +1 -1
  170. data/ext/couchbase/core/operations/management/bucket_get.hxx +1 -0
  171. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +1 -0
  172. data/ext/couchbase/core/operations/management/bucket_update.hxx +1 -0
  173. data/ext/couchbase/core/operations/management/change_password.cxx +1 -1
  174. data/ext/couchbase/core/operations/management/change_password.hxx +1 -0
  175. data/ext/couchbase/core/operations/management/cluster_describe.hxx +1 -0
  176. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
  177. data/ext/couchbase/core/operations/management/collection_create.cxx +1 -1
  178. data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
  179. data/ext/couchbase/core/operations/management/collection_drop.cxx +1 -1
  180. data/ext/couchbase/core/operations/management/collection_drop.hxx +1 -0
  181. data/ext/couchbase/core/operations/management/collection_update.cxx +1 -1
  182. data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
  183. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
  184. data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +1 -1
  185. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +3 -2
  186. data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +1 -1
  187. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +3 -2
  188. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +3 -2
  189. data/ext/couchbase/core/operations/management/eventing_get_function.cxx +1 -1
  190. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +3 -2
  191. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +3 -2
  192. data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +1 -1
  193. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +3 -2
  194. data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +1 -1
  195. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +3 -2
  196. data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +1 -1
  197. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +3 -2
  198. data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +1 -2
  199. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +3 -2
  200. data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
  201. data/ext/couchbase/core/operations/management/group_drop.cxx +1 -1
  202. data/ext/couchbase/core/operations/management/group_drop.hxx +1 -0
  203. data/ext/couchbase/core/operations/management/group_get.cxx +1 -1
  204. data/ext/couchbase/core/operations/management/group_get.hxx +1 -0
  205. data/ext/couchbase/core/operations/management/group_get_all.hxx +1 -0
  206. data/ext/couchbase/core/operations/management/group_upsert.hxx +1 -0
  207. data/ext/couchbase/core/operations/management/query_index_build.hxx +7 -5
  208. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +3 -0
  209. data/ext/couchbase/core/operations/management/query_index_create.cxx +1 -1
  210. data/ext/couchbase/core/operations/management/query_index_create.hxx +1 -0
  211. data/ext/couchbase/core/operations/management/query_index_drop.cxx +1 -1
  212. data/ext/couchbase/core/operations/management/query_index_drop.hxx +1 -0
  213. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +2 -0
  214. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +3 -0
  215. data/ext/couchbase/core/operations/management/role_get_all.hxx +1 -0
  216. data/ext/couchbase/core/operations/management/scope_create.cxx +1 -1
  217. data/ext/couchbase/core/operations/management/scope_create.hxx +1 -0
  218. data/ext/couchbase/core/operations/management/scope_drop.cxx +1 -1
  219. data/ext/couchbase/core/operations/management/scope_drop.hxx +1 -0
  220. data/ext/couchbase/core/operations/management/scope_get_all.cxx +1 -1
  221. data/ext/couchbase/core/operations/management/scope_get_all.hxx +1 -0
  222. data/ext/couchbase/core/operations/management/search_get_stats.hxx +1 -0
  223. data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +1 -1
  224. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +1 -0
  225. data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +1 -1
  226. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +1 -0
  227. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +1 -1
  228. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
  229. data/ext/couchbase/core/operations/management/search_index_control_query.cxx +1 -1
  230. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +1 -0
  231. data/ext/couchbase/core/operations/management/search_index_drop.cxx +1 -1
  232. data/ext/couchbase/core/operations/management/search_index_drop.hxx +1 -0
  233. data/ext/couchbase/core/operations/management/search_index_get.cxx +1 -1
  234. data/ext/couchbase/core/operations/management/search_index_get.hxx +1 -0
  235. data/ext/couchbase/core/operations/management/search_index_get_all.cxx +1 -1
  236. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +1 -0
  237. data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +1 -1
  238. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
  239. data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +1 -1
  240. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +1 -0
  241. data/ext/couchbase/core/operations/management/search_index_upsert.cxx +1 -1
  242. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +1 -0
  243. data/ext/couchbase/core/operations/management/user_drop.hxx +1 -0
  244. data/ext/couchbase/core/operations/management/user_get.hxx +1 -0
  245. data/ext/couchbase/core/operations/management/user_get_all.hxx +1 -0
  246. data/ext/couchbase/core/operations/management/user_upsert.cxx +3 -3
  247. data/ext/couchbase/core/operations/management/user_upsert.hxx +1 -0
  248. data/ext/couchbase/core/operations/management/view_index_drop.cxx +1 -1
  249. data/ext/couchbase/core/operations/management/view_index_drop.hxx +1 -0
  250. data/ext/couchbase/core/operations/management/view_index_get.cxx +1 -1
  251. data/ext/couchbase/core/operations/management/view_index_get.hxx +1 -0
  252. data/ext/couchbase/core/operations/management/view_index_get_all.cxx +1 -1
  253. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
  254. data/ext/couchbase/core/operations/management/view_index_upsert.cxx +1 -1
  255. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +1 -0
  256. data/ext/couchbase/core/origin.cxx +3 -2
  257. data/ext/couchbase/core/platform/base64.h +8 -8
  258. data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +1 -1
  259. data/ext/couchbase/core/protocol/client_response.hxx +1 -1
  260. data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +1 -1
  261. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +1 -1
  262. data/ext/couchbase/core/protocol/magic_fmt.hxx +1 -1
  263. data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +1 -1
  264. data/ext/couchbase/core/query_context.hxx +7 -6
  265. data/ext/couchbase/core/retry_orchestrator.cxx +1 -1
  266. data/ext/couchbase/core/sasl/CMakeLists.txt +0 -1
  267. data/ext/couchbase/core/sasl/error_fmt.h +1 -1
  268. data/ext/couchbase/core/seed_config.cxx +2 -2
  269. data/ext/couchbase/core/service_type_fmt.hxx +1 -1
  270. data/ext/couchbase/core/topology/capabilities_fmt.hxx +1 -1
  271. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +2 -1
  272. data/ext/couchbase/core/topology/configuration_fmt.hxx +1 -1
  273. data/ext/couchbase/core/transactions/async_attempt_context.cxx +1 -1
  274. data/ext/couchbase/core/transactions/async_attempt_context.hxx +9 -22
  275. data/ext/couchbase/core/transactions/attempt_context.cxx +1 -1
  276. data/ext/couchbase/core/transactions/attempt_context.hxx +6 -33
  277. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +41 -41
  278. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +15 -16
  279. data/ext/couchbase/core/transactions/exceptions_fmt.hxx +1 -1
  280. data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +1 -1
  281. data/ext/couchbase/core/transactions/internal/client_record.hxx +4 -3
  282. data/ext/couchbase/core/transactions/internal/doc_record_fmt.hxx +1 -1
  283. data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +0 -2
  284. data/ext/couchbase/core/transactions/internal/exceptions_internal_fmt.hxx +1 -1
  285. data/ext/couchbase/core/transactions/internal/logging.hxx +2 -0
  286. data/ext/couchbase/core/transactions/internal/transaction_context.hxx +3 -0
  287. data/ext/couchbase/core/transactions/result_fmt.hxx +1 -1
  288. data/ext/couchbase/core/transactions/transaction_context.cxx +12 -2
  289. data/ext/couchbase/core/transactions/transaction_get_result.hxx +0 -20
  290. data/ext/couchbase/core/transactions/transaction_links.hxx +1 -1
  291. data/ext/couchbase/core/utils/join_strings.hxx +2 -2
  292. data/ext/couchbase/core/utils/keyspace.hxx +2 -1
  293. data/ext/couchbase/core/utils/url_codec.cxx +1 -1
  294. data/ext/couchbase/couchbase/common_options.hxx +16 -1
  295. data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +0 -2
  296. data/ext/couchbase/couchbase/fmt/analytics_status.hxx +0 -2
  297. data/ext/couchbase/couchbase/fmt/cas.hxx +0 -2
  298. data/ext/couchbase/couchbase/fmt/durability_level.hxx +0 -2
  299. data/ext/couchbase/couchbase/fmt/error.hxx +0 -2
  300. data/ext/couchbase/couchbase/fmt/error_context.hxx +0 -2
  301. data/ext/couchbase/couchbase/fmt/mutation_token.hxx +0 -2
  302. data/ext/couchbase/couchbase/fmt/query_profile.hxx +0 -2
  303. data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +0 -2
  304. data/ext/couchbase/couchbase/fmt/query_status.hxx +0 -2
  305. data/ext/couchbase/couchbase/fmt/retry_reason.hxx +5 -1
  306. data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +0 -2
  307. data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +0 -2
  308. data/ext/couchbase/couchbase/fmt/transaction_keyspace.hxx +0 -2
  309. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +16 -20
  310. data/ext/couchbase.cxx +1 -0
  311. data/ext/extconf.rb +11 -0
  312. data/ext/rcb_analytics.cxx +7 -7
  313. data/ext/rcb_backend.cxx +83 -2
  314. data/ext/rcb_buckets.cxx +1 -1
  315. data/ext/rcb_collections.cxx +1 -1
  316. data/ext/rcb_crud.cxx +51 -30
  317. data/ext/rcb_diagnostics.cxx +1 -1
  318. data/ext/rcb_exceptions.cxx +3 -2
  319. data/ext/rcb_extras.cxx +1 -1
  320. data/ext/rcb_logger.cxx +6 -1
  321. data/ext/rcb_logger.hxx +3 -0
  322. data/ext/rcb_range_scan.cxx +3 -5
  323. data/ext/rcb_search.cxx +1 -1
  324. data/ext/rcb_users.cxx +2 -2
  325. data/ext/rcb_utils.hxx +32 -0
  326. data/lib/couchbase/bucket.rb +0 -8
  327. data/lib/couchbase/cluster.rb +2 -13
  328. data/lib/couchbase/collection.rb +0 -43
  329. data/lib/couchbase/collection_options.rb +3 -3
  330. data/lib/couchbase/datastructures/couchbase_queue.rb +1 -1
  331. data/lib/couchbase/datastructures/couchbase_set.rb +1 -1
  332. data/lib/couchbase/deprecations.rb +61 -0
  333. data/lib/couchbase/fork_hooks.rb +32 -0
  334. data/lib/couchbase/logger.rb +3 -3
  335. data/lib/couchbase/management/analytics_index_manager.rb +1 -1
  336. data/lib/couchbase/management/bucket_manager.rb +1 -1
  337. data/lib/couchbase/management/collection_manager.rb +1 -1
  338. data/lib/couchbase/management/query_index_manager.rb +1 -1
  339. data/lib/couchbase/options.rb +50 -2
  340. data/lib/couchbase/protostellar/request_generator/query.rb +1 -1
  341. data/lib/couchbase/utils/time.rb +1 -1
  342. data/lib/couchbase/version.rb +1 -1
  343. data/lib/couchbase.rb +2 -0
  344. metadata +133 -153
  345. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +0 -520
  346. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +0 -2598
  347. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/LICENSE +0 -27
  348. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +0 -484
  349. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +0 -135
  350. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +0 -403
  351. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/FindSetEnv.cmake +0 -7
  352. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/JoinPaths.cmake +0 -26
  353. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt-config.cmake.in +0 -7
  354. data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt.pc.in +0 -11
  355. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/args.h +0 -235
  356. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2240
  357. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/color.h +0 -643
  358. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/compile.h +0 -535
  359. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/core.h +0 -2969
  360. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1678
  361. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format.h +0 -4535
  362. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/os.h +0 -455
  363. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -245
  364. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/printf.h +0 -675
  365. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -738
  366. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/std.h +0 -537
  367. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -259
  368. data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +0 -46
  369. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/LICENSE +0 -0
  370. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/ide.cmake +0 -0
  371. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/pch.h.in +0 -0
  372. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlog.pc.in +0 -0
  373. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogCPack.cmake +0 -0
  374. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
  375. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/version.rc.in +0 -0
  376. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async.h +0 -0
  377. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger.h +0 -0
  378. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/argv.h +0 -0
  379. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/env.h +0 -0
  380. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
  381. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers.h +0 -0
  382. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common-inl.h +0 -0
  383. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common.h +0 -0
  384. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
  385. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer.h +0 -0
  386. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/circular_q.h +0 -0
  387. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/console_globals.h +0 -0
  388. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper-inl.h +0 -0
  389. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper.h +0 -0
  390. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
  391. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
  392. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg.h +0 -0
  393. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
  394. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
  395. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/null_mutex.h +0 -0
  396. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os.h +0 -0
  397. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
  398. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker.h +0 -0
  399. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry-inl.h +0 -0
  400. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry.h +0 -0
  401. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
  402. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
  403. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client.h +0 -0
  404. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
  405. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client.h +0 -0
  406. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/windows_include.h +0 -0
  407. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
  408. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
  409. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
  410. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
  411. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
  412. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
  413. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
  414. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
  415. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
  416. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
  417. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
  418. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
  419. /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
  420. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/chrono.h +0 -0
  421. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/compile.h +0 -0
  422. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/fmt.h +0 -0
  423. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ostr.h +0 -0
  424. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ranges.h +0 -0
  425. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/std.h +0 -0
  426. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/xchar.h +0 -0
  427. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/formatter.h +0 -0
  428. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fwd.h +0 -0
  429. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger-inl.h +0 -0
  430. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger.h +0 -0
  431. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter.h +0 -0
  432. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
  433. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
  434. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
  435. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
  436. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
  437. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
  438. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
  439. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
  440. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
  441. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
  442. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
  443. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/qt_sinks.h +0 -0
  444. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
  445. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
  446. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
  447. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink.h +0 -0
  448. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
  449. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
  450. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
  451. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
  452. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
  453. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
  454. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
  455. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
  456. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
  457. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog-inl.h +0 -0
  458. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog.h +0 -0
  459. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/stopwatch.h +0 -0
  460. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/tweakme.h +0 -0
  461. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/async.cpp +0 -0
  462. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/cfg.cpp +0 -0
  463. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/color_sinks.cpp +0 -0
  464. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/file_sinks.cpp +0 -0
  465. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/spdlog.cpp +0 -0
  466. /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/stdout_sinks.cpp +0 -0
@@ -1,27 +0,0 @@
1
- Copyright (c) 2012 - present, Victor Zverovich and {fmt} contributors
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- --- Optional exception to the license ---
23
-
24
- As an exception, if, as a result of your compiling your source code, portions
25
- of this Software are embedded into a machine-executable object form of such
26
- source code, you may redistribute such embedded portions in such object form
27
- without including the above copyright and permission notices.
@@ -1,484 +0,0 @@
1
- <img src="https://user-images.githubusercontent.com/576385/156254208-f5b743a9-88cf-439d-b0c0-923d53e8d551.png" alt="{fmt}" width="25%"/>
2
-
3
- [![image](https://github.com/fmtlib/fmt/workflows/linux/badge.svg)](https://github.com/fmtlib/fmt/actions?query=workflow%3Alinux)
4
- [![image](https://github.com/fmtlib/fmt/workflows/macos/badge.svg)](https://github.com/fmtlib/fmt/actions?query=workflow%3Amacos)
5
- [![image](https://github.com/fmtlib/fmt/workflows/windows/badge.svg)](https://github.com/fmtlib/fmt/actions?query=workflow%3Awindows)
6
- [![fmt is continuously fuzzed at oss-fuzz](https://oss-fuzz-build-logs.storage.googleapis.com/badges/fmt.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?\%0Acolspec=ID%20Type%20Component%20Status%20Proj%20Reported%20Owner%20\%0ASummary&q=proj%3Dfmt&can=1)
7
- [![Ask questions at StackOverflow with the tag fmt](https://img.shields.io/badge/stackoverflow-fmt-blue.svg)](https://stackoverflow.com/questions/tagged/fmt)
8
- [![image](https://api.securityscorecards.dev/projects/github.com/fmtlib/fmt/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fmtlib/fmt)
9
-
10
- **{fmt}** is an open-source formatting library providing a fast and safe
11
- alternative to C stdio and C++ iostreams.
12
-
13
- If you like this project, please consider donating to one of the funds
14
- that help victims of the war in Ukraine: <https://www.stopputin.net/>.
15
-
16
- [Documentation](https://fmt.dev)
17
-
18
- [Cheat Sheets](https://hackingcpp.com/cpp/libs/fmt.html)
19
-
20
- Q&A: ask questions on [StackOverflow with the tag
21
- fmt](https://stackoverflow.com/questions/tagged/fmt).
22
-
23
- Try {fmt} in [Compiler Explorer](https://godbolt.org/z/8Mx1EW73v).
24
-
25
- # Features
26
-
27
- - Simple [format API](https://fmt.dev/latest/api.html) with positional
28
- arguments for localization
29
- - Implementation of [C++20
30
- std::format](https://en.cppreference.com/w/cpp/utility/format) and
31
- [C++23 std::print](https://en.cppreference.com/w/cpp/io/print)
32
- - [Format string syntax](https://fmt.dev/latest/syntax.html) similar
33
- to Python\'s
34
- [format](https://docs.python.org/3/library/stdtypes.html#str.format)
35
- - Fast IEEE 754 floating-point formatter with correct rounding,
36
- shortness and round-trip guarantees using the
37
- [Dragonbox](https://github.com/jk-jeon/dragonbox) algorithm
38
- - Portable Unicode support
39
- - Safe [printf
40
- implementation](https://fmt.dev/latest/api.html#printf-formatting)
41
- including the POSIX extension for positional arguments
42
- - Extensibility: [support for user-defined
43
- types](https://fmt.dev/latest/api.html#formatting-user-defined-types)
44
- - High performance: faster than common standard library
45
- implementations of `(s)printf`, iostreams, `to_string` and
46
- `to_chars`, see [Speed tests](#speed-tests) and [Converting a
47
- hundred million integers to strings per
48
- second](http://www.zverovich.net/2020/06/13/fast-int-to-string-revisited.html)
49
- - Small code size both in terms of source code with the minimum
50
- configuration consisting of just three files, `core.h`, `format.h`
51
- and `format-inl.h`, and compiled code; see [Compile time and code
52
- bloat](#compile-time-and-code-bloat)
53
- - Reliability: the library has an extensive set of
54
- [tests](https://github.com/fmtlib/fmt/tree/master/test) and is
55
- [continuously fuzzed](https://bugs.chromium.org/p/oss-fuzz/issues/list?colspec=ID%20Type%20Component%20Status%20Proj%20Reported%20Owner%20Summary&q=proj%3Dfmt&can=1)
56
- - Safety: the library is fully type-safe, errors in format strings can
57
- be reported at compile time, automatic memory management prevents
58
- buffer overflow errors
59
- - Ease of use: small self-contained code base, no external
60
- dependencies, permissive MIT
61
- [license](https://github.com/fmtlib/fmt/blob/master/LICENSE.rst)
62
- - [Portability](https://fmt.dev/latest/index.html#portability) with
63
- consistent output across platforms and support for older compilers
64
- - Clean warning-free codebase even on high warning levels such as
65
- `-Wall -Wextra -pedantic`
66
- - Locale independence by default
67
- - Optional header-only configuration enabled with the
68
- `FMT_HEADER_ONLY` macro
69
-
70
- See the [documentation](https://fmt.dev) for more details.
71
-
72
- # Examples
73
-
74
- **Print to stdout** ([run](https://godbolt.org/z/Tevcjh))
75
-
76
- ``` c++
77
- #include <fmt/core.h>
78
-
79
- int main() {
80
- fmt::print("Hello, world!\n");
81
- }
82
- ```
83
-
84
- **Format a string** ([run](https://godbolt.org/z/oK8h33))
85
-
86
- ``` c++
87
- std::string s = fmt::format("The answer is {}.", 42);
88
- // s == "The answer is 42."
89
- ```
90
-
91
- **Format a string using positional arguments**
92
- ([run](https://godbolt.org/z/Yn7Txe))
93
-
94
- ``` c++
95
- std::string s = fmt::format("I'd rather be {1} than {0}.", "right", "happy");
96
- // s == "I'd rather be happy than right."
97
- ```
98
-
99
- **Print dates and times** ([run](https://godbolt.org/z/c31ExdY3W))
100
-
101
- ``` c++
102
- #include <fmt/chrono.h>
103
-
104
- int main() {
105
- auto now = std::chrono::system_clock::now();
106
- fmt::print("Date and time: {}\n", now);
107
- fmt::print("Time: {:%H:%M}\n", now);
108
- }
109
- ```
110
-
111
- Output:
112
-
113
- Date and time: 2023-12-26 19:10:31.557195597
114
- Time: 19:10
115
-
116
- **Print a container** ([run](https://godbolt.org/z/MxM1YqjE7))
117
-
118
- ``` c++
119
- #include <vector>
120
- #include <fmt/ranges.h>
121
-
122
- int main() {
123
- std::vector<int> v = {1, 2, 3};
124
- fmt::print("{}\n", v);
125
- }
126
- ```
127
-
128
- Output:
129
-
130
- [1, 2, 3]
131
-
132
- **Check a format string at compile time**
133
-
134
- ``` c++
135
- std::string s = fmt::format("{:d}", "I am not a number");
136
- ```
137
-
138
- This gives a compile-time error in C++20 because `d` is an invalid
139
- format specifier for a string.
140
-
141
- **Write a file from a single thread**
142
-
143
- ``` c++
144
- #include <fmt/os.h>
145
-
146
- int main() {
147
- auto out = fmt::output_file("guide.txt");
148
- out.print("Don't {}", "Panic");
149
- }
150
- ```
151
-
152
- This can be [5 to 9 times faster than
153
- fprintf](http://www.zverovich.net/2020/08/04/optimal-file-buffer-size.html).
154
-
155
- **Print with colors and text styles**
156
-
157
- ``` c++
158
- #include <fmt/color.h>
159
-
160
- int main() {
161
- fmt::print(fg(fmt::color::crimson) | fmt::emphasis::bold,
162
- "Hello, {}!\n", "world");
163
- fmt::print(fg(fmt::color::floral_white) | bg(fmt::color::slate_gray) |
164
- fmt::emphasis::underline, "Olá, {}!\n", "Mundo");
165
- fmt::print(fg(fmt::color::steel_blue) | fmt::emphasis::italic,
166
- "你好{}!\n", "世界");
167
- }
168
- ```
169
-
170
- Output on a modern terminal with Unicode support:
171
-
172
- ![image](https://github.com/fmtlib/fmt/assets/%0A576385/2a93c904-d6fa-4aa6-b453-2618e1c327d7)
173
-
174
- # Benchmarks
175
-
176
- ## Speed tests
177
-
178
- | Library | Method | Run Time, s |
179
- |-------------------|---------------|-------------|
180
- | libc | printf | 0.91 |
181
- | libc++ | std::ostream | 2.49 |
182
- | {fmt} 9.1 | fmt::print | 0.74 |
183
- | Boost Format 1.80 | boost::format | 6.26 |
184
- | Folly Format | folly::format | 1.87 |
185
-
186
- {fmt} is the fastest of the benchmarked methods, \~20% faster than
187
- `printf`.
188
-
189
- The above results were generated by building `tinyformat_test.cpp` on
190
- macOS 12.6.1 with `clang++ -O3 -DNDEBUG -DSPEED_TEST -DHAVE_FORMAT`, and
191
- taking the best of three runs. In the test, the format string
192
- `"%0.10f:%04d:%+g:%s:%p:%c:%%\n"` or equivalent is filled 2,000,000
193
- times with output sent to `/dev/null`; for further details refer to the
194
- [source](https://github.com/fmtlib/format-benchmark/blob/master/src/tinyformat-test.cc).
195
-
196
- {fmt} is up to 20-30x faster than `std::ostringstream` and `sprintf` on
197
- IEEE754 `float` and `double` formatting
198
- ([dtoa-benchmark](https://github.com/fmtlib/dtoa-benchmark)) and faster
199
- than [double-conversion](https://github.com/google/double-conversion)
200
- and [ryu](https://github.com/ulfjack/ryu):
201
-
202
- [![image](https://user-images.githubusercontent.com/576385/95684665-11719600-0ba8-11eb-8e5b-972ff4e49428.png)](https://fmt.dev/unknown_mac64_clang12.0.html)
203
-
204
- ## Compile time and code bloat
205
-
206
- The script [bloat-test.py][test] from [format-benchmark][bench] tests compile
207
- time and code bloat for nontrivial projects. It generates 100 translation units
208
- and uses `printf()` or its alternative five times in each to simulate a
209
- medium-sized project. The resulting executable size and compile time (Apple
210
- clang version 15.0.0 (clang-1500.1.0.2.5), macOS Sonoma, best of three) is shown
211
- in the following tables.
212
-
213
- [test]: https://github.com/fmtlib/format-benchmark/blob/master/bloat-test.py
214
- [bench]: https://github.com/fmtlib/format-benchmark
215
-
216
- **Optimized build (-O3)**
217
-
218
- | Method | Compile Time, s | Executable size, KiB | Stripped size, KiB |
219
- |---------------|-----------------|----------------------|--------------------|
220
- | printf | 1.6 | 54 | 50 |
221
- | IOStreams | 25.9 | 98 | 84 |
222
- | fmt 83652df | 4.8 | 54 | 50 |
223
- | tinyformat | 29.1 | 161 | 136 |
224
- | Boost Format | 55.0 | 530 | 317 |
225
-
226
- {fmt} is fast to compile and is comparable to `printf` in terms of per-call
227
- binary size (within a rounding error on this system).
228
-
229
- **Non-optimized build**
230
-
231
- | Method | Compile Time, s | Executable size, KiB | Stripped size, KiB |
232
- |---------------|-----------------|----------------------|--------------------|
233
- | printf | 1.4 | 54 | 50 |
234
- | IOStreams | 23.4 | 92 | 68 |
235
- | {fmt} 83652df | 4.4 | 89 | 85 |
236
- | tinyformat | 24.5 | 204 | 161 |
237
- | Boost Format | 36.4 | 831 | 462 |
238
-
239
- `libc`, `lib(std)c++`, and `libfmt` are all linked as shared libraries
240
- to compare formatting function overhead only. Boost Format is a
241
- header-only library so it doesn\'t provide any linkage options.
242
-
243
- ## Running the tests
244
-
245
- Please refer to [Building the
246
- library](https://fmt.dev/latest/usage.html#building-the-library) for
247
- instructions on how to build the library and run the unit tests.
248
-
249
- Benchmarks reside in a separate repository,
250
- [format-benchmarks](https://github.com/fmtlib/format-benchmark), so to
251
- run the benchmarks you first need to clone this repository and generate
252
- Makefiles with CMake:
253
-
254
- $ git clone --recursive https://github.com/fmtlib/format-benchmark.git
255
- $ cd format-benchmark
256
- $ cmake .
257
-
258
- Then you can run the speed test:
259
-
260
- $ make speed-test
261
-
262
- or the bloat test:
263
-
264
- $ make bloat-test
265
-
266
- # Migrating code
267
-
268
- [clang-tidy](https://clang.llvm.org/extra/clang-tidy/) v18 provides the
269
- [modernize-use-std-print](https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-std-print.html)
270
- check that is capable of converting occurrences of `printf` and
271
- `fprintf` to `fmt::print` if configured to do so. (By default it
272
- converts to `std::print`.)
273
-
274
- # Notable projects using this library
275
-
276
- - [0 A.D.](https://play0ad.com/): a free, open-source, cross-platform
277
- real-time strategy game
278
- - [AMPL/MP](https://github.com/ampl/mp): an open-source library for
279
- mathematical programming
280
- - [Apple's FoundationDB](https://github.com/apple/foundationdb): an open-source,
281
- distributed, transactional key-value store
282
- - [Aseprite](https://github.com/aseprite/aseprite): animated sprite
283
- editor & pixel art tool
284
- - [AvioBook](https://www.aviobook.aero/en): a comprehensive aircraft
285
- operations suite
286
- - [Blizzard Battle.net](https://battle.net/): an online gaming
287
- platform
288
- - [Celestia](https://celestia.space/): real-time 3D visualization of
289
- space
290
- - [Ceph](https://ceph.com/): a scalable distributed storage system
291
- - [ccache](https://ccache.dev/): a compiler cache
292
- - [ClickHouse](https://github.com/ClickHouse/ClickHouse): an
293
- analytical database management system
294
- - [Contour](https://github.com/contour-terminal/contour/): a modern
295
- terminal emulator
296
- - [CUAUV](https://cuauv.org/): Cornell University\'s autonomous
297
- underwater vehicle
298
- - [Drake](https://drake.mit.edu/): a planning, control, and analysis
299
- toolbox for nonlinear dynamical systems (MIT)
300
- - [Envoy](https://lyft.github.io/envoy/): C++ L7 proxy and
301
- communication bus (Lyft)
302
- - [FiveM](https://fivem.net/): a modification framework for GTA V
303
- - [fmtlog](https://github.com/MengRao/fmtlog): a performant
304
- fmtlib-style logging library with latency in nanoseconds
305
- - [Folly](https://github.com/facebook/folly): Facebook open-source
306
- library
307
- - [GemRB](https://gemrb.org/): a portable open-source implementation
308
- of Bioware's Infinity Engine
309
- - [Grand Mountain
310
- Adventure](https://store.steampowered.com/app/1247360/Grand_Mountain_Adventure/):
311
- a beautiful open-world ski & snowboarding game
312
- - [HarpyWar/pvpgn](https://github.com/pvpgn/pvpgn-server): Player vs
313
- Player Gaming Network with tweaks
314
- - [KBEngine](https://github.com/kbengine/kbengine): an open-source
315
- MMOG server engine
316
- - [Keypirinha](https://keypirinha.com/): a semantic launcher for
317
- Windows
318
- - [Kodi](https://kodi.tv/) (formerly xbmc): home theater software
319
- - [Knuth](https://kth.cash/): high-performance Bitcoin full-node
320
- - [libunicode](https://github.com/contour-terminal/libunicode/): a
321
- modern C++17 Unicode library
322
- - [MariaDB](https://mariadb.org/): relational database management
323
- system
324
- - [Microsoft Verona](https://github.com/microsoft/verona): research
325
- programming language for concurrent ownership
326
- - [MongoDB](https://mongodb.com/): distributed document database
327
- - [MongoDB Smasher](https://github.com/duckie/mongo_smasher): a small
328
- tool to generate randomized datasets
329
- - [OpenSpace](https://openspaceproject.com/): an open-source
330
- astrovisualization framework
331
- - [PenUltima Online (POL)](https://www.polserver.com/): an MMO server,
332
- compatible with most Ultima Online clients
333
- - [PyTorch](https://github.com/pytorch/pytorch): an open-source
334
- machine learning library
335
- - [quasardb](https://www.quasardb.net/): a distributed,
336
- high-performance, associative database
337
- - [Quill](https://github.com/odygrd/quill): asynchronous low-latency
338
- logging library
339
- - [QKW](https://github.com/ravijanjam/qkw): generalizing aliasing to
340
- simplify navigation, and execute complex multi-line terminal
341
- command sequences
342
- - [redis-cerberus](https://github.com/HunanTV/redis-cerberus): a Redis
343
- cluster proxy
344
- - [redpanda](https://vectorized.io/redpanda): a 10x faster Kafka®
345
- replacement for mission-critical systems written in C++
346
- - [rpclib](http://rpclib.net/): a modern C++ msgpack-RPC server and
347
- client library
348
- - [Salesforce Analytics
349
- Cloud](https://www.salesforce.com/analytics-cloud/overview/):
350
- business intelligence software
351
- - [Scylla](https://www.scylladb.com/): a Cassandra-compatible NoSQL
352
- data store that can handle 1 million transactions per second on a
353
- single server
354
- - [Seastar](http://www.seastar-project.org/): an advanced, open-source
355
- C++ framework for high-performance server applications on modern
356
- hardware
357
- - [spdlog](https://github.com/gabime/spdlog): super fast C++ logging
358
- library
359
- - [Stellar](https://www.stellar.org/): financial platform
360
- - [Touch Surgery](https://www.touchsurgery.com/): surgery simulator
361
- - [TrinityCore](https://github.com/TrinityCore/TrinityCore):
362
- open-source MMORPG framework
363
- - [🐙 userver framework](https://userver.tech/): open-source
364
- asynchronous framework with a rich set of abstractions and database
365
- drivers
366
- - [Windows Terminal](https://github.com/microsoft/terminal): the new
367
- Windows terminal
368
-
369
- [More\...](https://github.com/search?q=fmtlib&type=Code)
370
-
371
- If you are aware of other projects using this library, please let me
372
- know by [email](mailto:victor.zverovich@gmail.com) or by submitting an
373
- [issue](https://github.com/fmtlib/fmt/issues).
374
-
375
- # Motivation
376
-
377
- So why yet another formatting library?
378
-
379
- There are plenty of methods for doing this task, from standard ones like
380
- the printf family of function and iostreams to Boost Format and
381
- FastFormat libraries. The reason for creating a new library is that
382
- every existing solution that I found either had serious issues or
383
- didn\'t provide all the features I needed.
384
-
385
- ## printf
386
-
387
- The good thing about `printf` is that it is pretty fast and readily
388
- available being a part of the C standard library. The main drawback is
389
- that it doesn\'t support user-defined types. `printf` also has safety
390
- issues although they are somewhat mitigated with [\_\_attribute\_\_
391
- ((format (printf,
392
- \...))](https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html) in
393
- GCC. There is a POSIX extension that adds positional arguments required
394
- for
395
- [i18n](https://en.wikipedia.org/wiki/Internationalization_and_localization)
396
- to `printf` but it is not a part of C99 and may not be available on some
397
- platforms.
398
-
399
- ## iostreams
400
-
401
- The main issue with iostreams is best illustrated with an example:
402
-
403
- ``` c++
404
- std::cout << std::setprecision(2) << std::fixed << 1.23456 << "\n";
405
- ```
406
-
407
- which is a lot of typing compared to printf:
408
-
409
- ``` c++
410
- printf("%.2f\n", 1.23456);
411
- ```
412
-
413
- Matthew Wilson, the author of FastFormat, called this \"chevron hell\".
414
- iostreams don\'t support positional arguments by design.
415
-
416
- The good part is that iostreams support user-defined types and are safe
417
- although error handling is awkward.
418
-
419
- ## Boost Format
420
-
421
- This is a very powerful library that supports both `printf`-like format
422
- strings and positional arguments. Its main drawback is performance.
423
- According to various benchmarks, it is much slower than other methods
424
- considered here. Boost Format also has excessive build times and severe
425
- code bloat issues (see [Benchmarks](#benchmarks)).
426
-
427
- ## FastFormat
428
-
429
- This is an interesting library that is fast, safe and has positional
430
- arguments. However, it has significant limitations, citing its author:
431
-
432
- > Three features that have no hope of being accommodated within the
433
- > current design are:
434
- >
435
- > - Leading zeros (or any other non-space padding)
436
- > - Octal/hexadecimal encoding
437
- > - Runtime width/alignment specification
438
-
439
- It is also quite big and has a heavy dependency, on STLSoft, which might be
440
- too restrictive for use in some projects.
441
-
442
- ## Boost Spirit.Karma
443
-
444
- This is not a formatting library but I decided to include it here for
445
- completeness. As iostreams, it suffers from the problem of mixing
446
- verbatim text with arguments. The library is pretty fast, but slower on
447
- integer formatting than `fmt::format_to` with format string compilation
448
- on Karma\'s own benchmark, see [Converting a hundred million integers to
449
- strings per
450
- second](http://www.zverovich.net/2020/06/13/fast-int-to-string-revisited.html).
451
-
452
- # License
453
-
454
- {fmt} is distributed under the MIT
455
- [license](https://github.com/fmtlib/fmt/blob/master/LICENSE).
456
-
457
- # Documentation License
458
-
459
- The [Format String Syntax](https://fmt.dev/latest/syntax.html) section
460
- in the documentation is based on the one from Python [string module
461
- documentation](https://docs.python.org/3/library/string.html#module-string).
462
- For this reason, the documentation is distributed under the Python
463
- Software Foundation license available in
464
- [doc/python-license.txt](https://raw.github.com/fmtlib/fmt/master/doc/python-license.txt).
465
- It only applies if you distribute the documentation of {fmt}.
466
-
467
- # Maintainers
468
-
469
- The {fmt} library is maintained by Victor Zverovich
470
- ([vitaut](https://github.com/vitaut)) with contributions from many other
471
- people. See
472
- [Contributors](https://github.com/fmtlib/fmt/graphs/contributors) and
473
- [Releases](https://github.com/fmtlib/fmt/releases) for some of the
474
- names. Let us know if your contribution is not listed or mentioned
475
- incorrectly and we\'ll make it right.
476
-
477
- # Security Policy
478
-
479
- To report a security issue, please disclose it at [security
480
- advisory](https://github.com/fmtlib/fmt/security/advisories/new).
481
-
482
- This project is maintained by a team of volunteers on a
483
- reasonable-effort basis. As such, please give us at least *90* days to
484
- work on a fix before public exposure.
@@ -1,135 +0,0 @@
1
- module;
2
-
3
- // Put all implementation-provided headers into the global module fragment
4
- // to prevent attachment to this module.
5
- #ifndef FMT_IMPORT_STD
6
- # include <algorithm>
7
- # include <bitset>
8
- # include <chrono>
9
- # include <cmath>
10
- # include <complex>
11
- # include <cstddef>
12
- # include <cstdint>
13
- # include <cstdio>
14
- # include <cstdlib>
15
- # include <cstring>
16
- # include <ctime>
17
- # include <exception>
18
- # include <expected>
19
- # include <filesystem>
20
- # include <fstream>
21
- # include <functional>
22
- # include <iterator>
23
- # include <limits>
24
- # include <locale>
25
- # include <memory>
26
- # include <optional>
27
- # include <ostream>
28
- # include <source_location>
29
- # include <stdexcept>
30
- # include <string>
31
- # include <string_view>
32
- # include <system_error>
33
- # include <thread>
34
- # include <type_traits>
35
- # include <typeinfo>
36
- # include <utility>
37
- # include <variant>
38
- # include <vector>
39
- #else
40
- # include <limits.h>
41
- # include <stdint.h>
42
- # include <stdio.h>
43
- # include <time.h>
44
- #endif
45
- #include <cerrno>
46
- #include <climits>
47
- #include <version>
48
-
49
- #if __has_include(<cxxabi.h>)
50
- # include <cxxabi.h>
51
- #endif
52
- #if defined(_MSC_VER) || defined(__MINGW32__)
53
- # include <intrin.h>
54
- #endif
55
- #if defined __APPLE__ || defined(__FreeBSD__)
56
- # include <xlocale.h>
57
- #endif
58
- #if __has_include(<winapifamily.h>)
59
- # include <winapifamily.h>
60
- #endif
61
- #if (__has_include(<fcntl.h>) || defined(__APPLE__) || \
62
- defined(__linux__)) && \
63
- (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP))
64
- # include <fcntl.h>
65
- # include <sys/stat.h>
66
- # include <sys/types.h>
67
- # ifndef _WIN32
68
- # include <unistd.h>
69
- # else
70
- # include <io.h>
71
- # endif
72
- #endif
73
- #ifdef _WIN32
74
- # if defined(__GLIBCXX__)
75
- # include <ext/stdio_filebuf.h>
76
- # include <ext/stdio_sync_filebuf.h>
77
- # endif
78
- # define WIN32_LEAN_AND_MEAN
79
- # include <windows.h>
80
- #endif
81
-
82
- export module fmt;
83
-
84
- #ifdef FMT_IMPORT_STD
85
- import std;
86
- #endif
87
-
88
- #define FMT_EXPORT export
89
- #define FMT_BEGIN_EXPORT export {
90
- #define FMT_END_EXPORT }
91
-
92
- // If you define FMT_ATTACH_TO_GLOBAL_MODULE
93
- // - all declarations are detached from module 'fmt'
94
- // - the module behaves like a traditional static library, too
95
- // - all library symbols are mangled traditionally
96
- // - you can mix TUs with either importing or #including the {fmt} API
97
- #ifdef FMT_ATTACH_TO_GLOBAL_MODULE
98
- extern "C++" {
99
- #endif
100
-
101
- #ifndef FMT_OS
102
- # define FMT_OS 1
103
- #endif
104
-
105
- // All library-provided declarations and definitions must be in the module
106
- // purview to be exported.
107
- #include "fmt/args.h"
108
- #include "fmt/chrono.h"
109
- #include "fmt/color.h"
110
- #include "fmt/compile.h"
111
- #include "fmt/format.h"
112
- #if FMT_OS
113
- # include "fmt/os.h"
114
- #endif
115
- #include "fmt/ostream.h"
116
- #include "fmt/printf.h"
117
- #include "fmt/ranges.h"
118
- #include "fmt/std.h"
119
- #include "fmt/xchar.h"
120
-
121
- #ifdef FMT_ATTACH_TO_GLOBAL_MODULE
122
- }
123
- #endif
124
-
125
- // gcc doesn't yet implement private module fragments
126
- #if !FMT_GCC_VERSION
127
- module :private;
128
- #endif
129
-
130
- #if FMT_HAS_INCLUDE("format.cc")
131
- # include "format.cc"
132
- #endif
133
- #if FMT_OS && FMT_HAS_INCLUDE("os.cc")
134
- # include "os.cc"
135
- #endif