couchbase 3.5.4 → 3.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/ext/CMakeLists.txt +8 -6
- data/ext/cache/cpm/{CPM_0.38.6.cmake → CPM_0.40.5.cmake} +152 -22
- data/ext/cache/extconf_include.rb +3 -3
- data/ext/cache/mozilla-ca-bundle.crt +32 -87
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/CMakeLists.txt +30 -6
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/utils.cmake +13 -2
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger-inl.h +5 -7
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/mpmc_blocking_q.h +3 -3
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os-inl.h +3 -3
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool-inl.h +3 -8
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool.h +3 -14
- data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/base.h +47 -31
- data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format-inl.h +32 -8
- data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format.h +22 -14
- data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ranges.h +1 -1
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/mdc.h +4 -0
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter-inl.h +16 -2
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink.h +1 -1
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink.h +4 -4
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/callback_sink.h +1 -1
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/daily_file_sink.h +3 -0
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/hourly_file_sink.h +2 -0
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/msvc_sink.h +1 -1
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +1 -1
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/syslog_sink.h +3 -2
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +9 -0
- data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/version.h +2 -2
- data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/format.cc → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/src/bundled_fmtlib_format.cpp} +10 -5
- data/ext/couchbase/CMakeLists.txt +3 -2
- data/ext/couchbase/cmake/APKBUILD.in +54 -0
- data/ext/couchbase/cmake/Backtrace.cmake +3 -1
- data/ext/couchbase/cmake/CPM.cmake +1 -1
- data/ext/couchbase/cmake/CompilerWarnings.cmake +0 -5
- data/ext/couchbase/cmake/Packaging.cmake +174 -11
- data/ext/couchbase/cmake/RPath.cmake +10 -0
- data/ext/couchbase/cmake/Testing.cmake +0 -4
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +7 -26
- data/ext/couchbase/cmake/VersionInfo.cmake +4 -0
- data/ext/couchbase/cmake/build_version.hxx.in +1 -0
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +2 -2
- data/ext/couchbase/cmake/couchbase_cxx_client.pc.in +2 -2
- data/ext/couchbase/core/agent_config.cxx +1 -1
- data/ext/couchbase/core/agent_group_config.cxx +1 -1
- data/ext/couchbase/core/bucket.cxx +9 -9
- data/ext/couchbase/core/cluster.cxx +0 -2
- data/ext/couchbase/core/cluster_agent_config.cxx +1 -1
- data/ext/couchbase/core/collections_component.cxx +1 -1
- data/ext/couchbase/core/columnar/agent_config.cxx +2 -2
- data/ext/couchbase/core/columnar/error.hxx +0 -1
- data/ext/couchbase/core/columnar/query_component.cxx +2 -2
- data/ext/couchbase/core/config_profiles.cxx +1 -1
- data/ext/couchbase/core/core_sdk_shim.cxx +1 -1
- data/ext/couchbase/core/crud_component.cxx +1 -1
- data/ext/couchbase/core/design_document_namespace_fmt.hxx +1 -1
- data/ext/couchbase/core/diagnostics_fmt.hxx +1 -1
- data/ext/couchbase/core/document_id.cxx +1 -1
- data/ext/couchbase/core/document_id_fmt.hxx +1 -1
- data/ext/couchbase/core/error_context/analytics_json.hxx +3 -1
- data/ext/couchbase/core/error_context/key_value_json.hxx +1 -1
- data/ext/couchbase/core/error_context/query_public_json.hxx +1 -1
- data/ext/couchbase/core/error_context/subdocument_json.hxx +1 -1
- data/ext/couchbase/core/fmt/key_value_error_map_attribute.hxx +1 -1
- data/ext/couchbase/core/fmt/key_value_extended_error_info.hxx +1 -1
- data/ext/couchbase/core/fmt/key_value_status_code.hxx +1 -1
- data/ext/couchbase/core/http_component.cxx +3 -3
- data/ext/couchbase/core/impl/analytics.cxx +1 -0
- data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +1 -1
- data/ext/couchbase/core/impl/collection.cxx +28 -4
- data/ext/couchbase/core/impl/date_range.cxx +2 -2
- data/ext/couchbase/core/impl/date_range_query.cxx +2 -2
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +1 -1
- data/ext/couchbase/core/impl/error.cxx +27 -4
- data/ext/couchbase/core/impl/expiry.cxx +2 -2
- data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +1 -2
- data/ext/couchbase/core/impl/get_replica.hxx +2 -0
- data/ext/couchbase/core/impl/key_value_error_context.cxx +6 -4
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +2 -0
- data/ext/couchbase/core/impl/numeric_range.cxx +1 -1
- data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
- data/ext/couchbase/core/impl/query.cxx +1 -0
- data/ext/couchbase/core/impl/query_error_context.cxx +3 -2
- data/ext/couchbase/core/impl/scope.cxx +5 -6
- data/ext/couchbase/core/impl/search.cxx +3 -1
- data/ext/couchbase/core/io/config_tracker.cxx +1 -1
- data/ext/couchbase/core/io/dns_client.cxx +23 -8
- data/ext/couchbase/core/io/http_command.hxx +2 -2
- data/ext/couchbase/core/io/http_parser.cxx +1 -1
- data/ext/couchbase/core/io/http_session.cxx +4 -0
- data/ext/couchbase/core/io/http_session.hxx +4 -2
- data/ext/couchbase/core/io/mcbp_command.hxx +2 -2
- data/ext/couchbase/core/key_value_config.cxx +2 -2
- data/ext/couchbase/core/logger/logger.hxx +1 -1
- data/ext/couchbase/core/management/rbac_fmt.hxx +1 -1
- data/ext/couchbase/core/mcbp/operation_queue.cxx +1 -1
- data/ext/couchbase/core/mcbp/packet.cxx +1 -1
- data/ext/couchbase/core/meta/features.hxx +11 -0
- data/ext/couchbase/core/meta/version.cxx +48 -7
- data/ext/couchbase/core/operations/document_analytics.cxx +23 -17
- data/ext/couchbase/core/operations/document_analytics.hxx +1 -0
- data/ext/couchbase/core/operations/document_append.hxx +2 -0
- data/ext/couchbase/core/operations/document_decrement.hxx +2 -0
- data/ext/couchbase/core/operations/document_exists.hxx +2 -0
- data/ext/couchbase/core/operations/document_get.hxx +2 -0
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +2 -0
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +2 -0
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +2 -0
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +2 -0
- data/ext/couchbase/core/operations/document_get_projected.hxx +2 -0
- data/ext/couchbase/core/operations/document_increment.hxx +2 -0
- data/ext/couchbase/core/operations/document_insert.hxx +2 -0
- data/ext/couchbase/core/operations/document_lookup_in.hxx +2 -0
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +2 -0
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +2 -0
- data/ext/couchbase/core/operations/document_mutate_in.hxx +2 -0
- data/ext/couchbase/core/operations/document_prepend.hxx +2 -0
- data/ext/couchbase/core/operations/document_query.hxx +1 -0
- data/ext/couchbase/core/operations/document_remove.hxx +2 -0
- data/ext/couchbase/core/operations/document_replace.hxx +2 -0
- data/ext/couchbase/core/operations/document_search.hxx +1 -0
- data/ext/couchbase/core/operations/document_touch.hxx +2 -0
- data/ext/couchbase/core/operations/document_unlock.hxx +2 -0
- data/ext/couchbase/core/operations/document_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/document_view.hxx +1 -0
- data/ext/couchbase/core/operations/http_noop.hxx +2 -0
- data/ext/couchbase/core/operations/management/CMakeLists.txt +0 -1
- data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +24 -16
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +4 -3
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +1 -0
- data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +4 -3
- data/ext/couchbase/core/operations/management/bucket_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/bucket_describe.cxx +1 -1
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +1 -0
- data/ext/couchbase/core/operations/management/bucket_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/bucket_flush.cxx +1 -1
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +1 -0
- data/ext/couchbase/core/operations/management/bucket_get.cxx +1 -1
- data/ext/couchbase/core/operations/management/bucket_get.hxx +1 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +1 -0
- data/ext/couchbase/core/operations/management/change_password.cxx +1 -1
- data/ext/couchbase/core/operations/management/change_password.hxx +1 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +1 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
- data/ext/couchbase/core/operations/management/collection_create.cxx +1 -1
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/collection_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/collection_update.cxx +1 -1
- data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +1 -1
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +1 -1
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_get_function.cxx +1 -1
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +1 -1
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +1 -1
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +1 -1
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +1 -2
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +3 -2
- data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/group_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/group_get.cxx +1 -1
- data/ext/couchbase/core/operations/management/group_get.hxx +1 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +1 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +7 -5
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +3 -0
- data/ext/couchbase/core/operations/management/query_index_create.cxx +1 -1
- data/ext/couchbase/core/operations/management/query_index_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/query_index_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +3 -0
- data/ext/couchbase/core/operations/management/role_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/scope_create.cxx +1 -1
- data/ext/couchbase/core/operations/management/scope_create.hxx +1 -0
- data/ext/couchbase/core/operations/management/scope_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/scope_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/scope_get_all.cxx +1 -1
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_get.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_get.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +1 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.cxx +1 -1
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +1 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +1 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +1 -0
- data/ext/couchbase/core/operations/management/user_upsert.cxx +3 -3
- data/ext/couchbase/core/operations/management/user_upsert.hxx +1 -0
- data/ext/couchbase/core/operations/management/view_index_drop.cxx +1 -1
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +1 -0
- data/ext/couchbase/core/operations/management/view_index_get.cxx +1 -1
- data/ext/couchbase/core/operations/management/view_index_get.hxx +1 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.cxx +1 -1
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.cxx +1 -1
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +1 -0
- data/ext/couchbase/core/origin.cxx +3 -2
- data/ext/couchbase/core/platform/base64.h +8 -8
- data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +1 -1
- data/ext/couchbase/core/protocol/client_response.hxx +1 -1
- data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +1 -1
- data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +1 -1
- data/ext/couchbase/core/protocol/magic_fmt.hxx +1 -1
- data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +1 -1
- data/ext/couchbase/core/query_context.hxx +7 -6
- data/ext/couchbase/core/retry_orchestrator.cxx +1 -1
- data/ext/couchbase/core/sasl/CMakeLists.txt +0 -1
- data/ext/couchbase/core/sasl/error_fmt.h +1 -1
- data/ext/couchbase/core/seed_config.cxx +2 -2
- data/ext/couchbase/core/service_type_fmt.hxx +1 -1
- data/ext/couchbase/core/topology/capabilities_fmt.hxx +1 -1
- data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +2 -1
- data/ext/couchbase/core/topology/configuration_fmt.hxx +1 -1
- data/ext/couchbase/core/transactions/async_attempt_context.cxx +1 -1
- data/ext/couchbase/core/transactions/async_attempt_context.hxx +9 -22
- data/ext/couchbase/core/transactions/attempt_context.cxx +1 -1
- data/ext/couchbase/core/transactions/attempt_context.hxx +6 -33
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +41 -41
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +15 -16
- data/ext/couchbase/core/transactions/exceptions_fmt.hxx +1 -1
- data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +1 -1
- data/ext/couchbase/core/transactions/internal/client_record.hxx +4 -3
- data/ext/couchbase/core/transactions/internal/doc_record_fmt.hxx +1 -1
- data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +0 -2
- data/ext/couchbase/core/transactions/internal/exceptions_internal_fmt.hxx +1 -1
- data/ext/couchbase/core/transactions/internal/logging.hxx +2 -0
- data/ext/couchbase/core/transactions/internal/transaction_context.hxx +3 -0
- data/ext/couchbase/core/transactions/result_fmt.hxx +1 -1
- data/ext/couchbase/core/transactions/transaction_context.cxx +12 -2
- data/ext/couchbase/core/transactions/transaction_get_result.hxx +0 -20
- data/ext/couchbase/core/transactions/transaction_links.hxx +1 -1
- data/ext/couchbase/core/utils/join_strings.hxx +2 -2
- data/ext/couchbase/core/utils/keyspace.hxx +2 -1
- data/ext/couchbase/core/utils/url_codec.cxx +1 -1
- data/ext/couchbase/couchbase/common_options.hxx +16 -1
- data/ext/couchbase/couchbase/fmt/analytics_scan_consistency.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/analytics_status.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/cas.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/durability_level.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/error.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/error_context.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/mutation_token.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/query_profile.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/query_status.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/retry_reason.hxx +5 -1
- data/ext/couchbase/couchbase/fmt/search_scan_consistency.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +0 -2
- data/ext/couchbase/couchbase/fmt/transaction_keyspace.hxx +0 -2
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +16 -20
- data/ext/extconf.rb +1 -0
- data/ext/rcb_analytics.cxx +7 -7
- data/ext/rcb_backend.cxx +6 -1
- data/ext/rcb_buckets.cxx +1 -1
- data/ext/rcb_collections.cxx +1 -1
- data/ext/rcb_crud.cxx +51 -30
- data/ext/rcb_diagnostics.cxx +1 -1
- data/ext/rcb_exceptions.cxx +3 -2
- data/ext/rcb_extras.cxx +1 -1
- data/ext/rcb_range_scan.cxx +1 -1
- data/ext/rcb_search.cxx +1 -1
- data/ext/rcb_users.cxx +2 -2
- data/ext/rcb_utils.hxx +32 -0
- data/lib/couchbase/logger.rb +3 -3
- data/lib/couchbase/options.rb +48 -0
- data/lib/couchbase/version.rb +1 -1
- metadata +131 -153
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +0 -520
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +0 -2598
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/LICENSE +0 -27
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +0 -484
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +0 -135
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +0 -403
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/FindSetEnv.cmake +0 -7
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/JoinPaths.cmake +0 -26
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt-config.cmake.in +0 -7
- data/ext/cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt.pc.in +0 -11
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/args.h +0 -235
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2240
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/color.h +0 -643
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/compile.h +0 -535
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/core.h +0 -2969
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1678
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format.h +0 -4535
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/os.h +0 -455
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -245
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/printf.h +0 -675
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -738
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/std.h +0 -537
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -259
- data/ext/cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +0 -46
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/LICENSE +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/ide.cmake +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/pch.h.in +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlog.pc.in +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogCPack.cmake +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/version.rc.in +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/argv.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/env.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/circular_q.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/console_globals.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/null_mutex.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/windows_include.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
- /data/ext/cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/chrono.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/compile.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/fmt.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ostr.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ranges.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/std.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/xchar.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/formatter.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fwd.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/qt_sinks.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog-inl.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/stopwatch.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/tweakme.h +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/async.cpp +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/cfg.cpp +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/color_sinks.cpp +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/file_sinks.cpp +0 -0
- /data/ext/cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/spdlog.cpp +0 -0
- /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
|