apache-iggy 0.7.4.dev1__tar.gz → 0.7.5.dev1__tar.gz
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.
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/Cargo.toml +7 -7
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/PKG-INFO +1 -1
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/Cargo.toml +2 -3
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/alloc/buffer.rs +98 -47
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/alloc/memory_pool.rs +42 -20
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/messages/send_messages.rs +48 -27
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/lib.rs +0 -1
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_mapper.rs +1 -4
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/iggy_message.rs +45 -18
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/messages_batch_mut.rs +13 -12
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/messages_batch_set.rs +13 -5
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/mod.rs +0 -1
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/permissions/personal_access_token.rs +2 -14
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/segment.rs +28 -1
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/segment_storage/index_reader.rs +11 -20
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/segment_storage/messages_reader.rs +12 -20
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/user/user_identity_info.rs +2 -15
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/crypto.rs +70 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/Cargo.toml +1 -1
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_message.rs +12 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/consumer.rs +17 -2
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/producer.rs +6 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/http_client.rs +1 -2
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/Cargo.lock +99 -153
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/Cargo.toml +2 -2
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/uv.lock +3 -3
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/pyproject.toml +1 -1
- apache_iggy-0.7.4.dev1/core/common/src/types/consensus/header.rs +0 -879
- apache_iggy-0.7.4.dev1/core/common/src/types/consensus/message.rs +0 -719
- apache_iggy-0.7.4.dev1/core/common/src/types/consensus/mod.rs +0 -19
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/LICENSE +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/NOTICE +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/README.md +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/apache_iggy.pyi +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/README.md +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/alloc/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/certificates.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/create_consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/delete_consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/get_consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/get_consumer_groups.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/join_consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/leave_consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_groups/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_offsets/delete_consumer_offset.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_offsets/get_consumer_offset.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_offsets/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/consumer_offsets/store_consumer_offset.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/messages/flush_unsaved_buffer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/messages/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/messages/poll_messages.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/partitions/create_partitions.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/partitions/delete_partitions.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/partitions/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/personal_access_tokens/create_personal_access_token.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/personal_access_tokens/delete_personal_access_token.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/personal_access_tokens/get_personal_access_tokens.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/personal_access_tokens/login_with_personal_access_token.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/personal_access_tokens/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/segments/delete_segments.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/segments/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/create_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/delete_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/get_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/get_streams.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/purge_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/streams/update_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/get_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/get_clients.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/get_cluster_metadata.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/get_me.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/get_snapshot.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/get_stats.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/system/ping.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/create_topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/delete_topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/get_topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/get_topics.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/purge_topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/topics/update_topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/change_password.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/create_user.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/defaults.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/delete_user.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/get_user.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/get_users.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/login_user.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/logout_user.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/update_permissions.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/users/update_user.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/deduplication/message_deduplicator.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/deduplication/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/error/client_error.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/error/iggy_error.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/error/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/locking/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/locking/tokio_lock.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/macros.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sender/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sender/quic_sender.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sender/tcp_sender.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sender/tcp_tls_sender.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sender/websocket_sender.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sender/websocket_tls_sender.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sharding/local_idx.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sharding/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sharding/namespace.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sharding/partition_location.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/sharding/shard_id.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_auth.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/cluster.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/consumer_groups.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/consumer_offsets.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/messages.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/partitions.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/personal_access_tokens.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/segments.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/streams.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/system.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/topics.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_impls/users.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/binary_transport.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/bytes_serializable.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/cluster_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/consumer_group_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/consumer_offset_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/message_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/partition_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/partitioner.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/personal_access_token_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/segment_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/sizeable.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/stream_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/system_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/topic_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/user_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/traits/validatable.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/args/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/client/client_info.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/client/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/client_state/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/cluster/metadata.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/cluster/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/cluster/node.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/cluster/role.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/cluster/status.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/cluster/transport_endpoints.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/command/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/compression/compression_algorithm.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/compression/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/auth_config/auto_login.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/auth_config/connection_string.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/auth_config/connection_string_options.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/auth_config/credentials.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/auth_config/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/http_config/http_client_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/http_config/http_client_config_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/http_config/http_connection_string_options.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/http_config/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/quic_config/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/quic_config/quic_client_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/quic_config/quic_client_config_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/quic_config/quic_client_reconnection_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/quic_config/quic_connection_string_options.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/tcp_config/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/tcp_config/tcp_client_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/tcp_config/tcp_client_config_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/tcp_config/tcp_client_reconnection_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/tcp_config/tcp_connection_string_options.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/transport.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/websocket_config/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/websocket_config/websocket_client_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/websocket_config/websocket_client_config_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/websocket_config/websocket_client_reconnection_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/configuration/websocket_config/websocket_connection_string_options.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_group_id.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_group_offsets.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_kind.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_offset.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_offset_info.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/consumer_offsets.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/consumer/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/diagnostic/diagnostic_event.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/diagnostic/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/either.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/identifier/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/in_flight.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/index.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/index_view.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/indexes.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/indexes_mut.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/message_boundaries.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/message_header.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/message_header_view.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/message_header_view_mut.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/message_view.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/message_view_mut.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/messages_batch.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/partitioning.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/partitioning_kind.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/poll_metadata.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/polled_messages.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/polling_kind.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/polling_strategy.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/message/user_headers.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/partition/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/permissions/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/permissions/permissions_global.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/personal_access_tokens/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/segment_storage/index_writer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/segment_storage/messages_writer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/segment_storage/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/snapshot/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/stats/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/stream/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/streaming_stats.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/topic/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/user/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/user/user_info.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/types/user/user_status.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/byte_size.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/checksum.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/duration.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/expiry.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/hash.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/personal_access_token_expiry.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/random_id.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/serde_secret.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/text.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/timestamp.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/topic_size.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/utils/versioning.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/README.md +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/binary/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_provider.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_cluster_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_consumer_group_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_consumer_offset_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_message_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_partition_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_personal_access_token_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_segment_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_stream_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_system_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_topic_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/binary_user_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/client_wrapper.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/connection_info.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/client_wrappers/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_cluster.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_consumer_group.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_consumer_offset.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_partitions.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_personal_access_tokens.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_segments.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_streams.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_system.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_topics.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/binary_users.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/client_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/consumer_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/producer_builder.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/producer_config.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/producer_dispatcher.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/producer_error_callback.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/clients/producer_sharding.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/consumer_ext/consumer_message_ext.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/consumer_ext/consumer_message_trait.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/consumer_ext/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/cluster.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/consumer_groups.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/consumer_offsets.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/http_transport.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/messages.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/partitions.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/personal_access_tokens.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/segments.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/streams.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/system.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/topics.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/http/users.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/leader_aware.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/lib.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/prelude.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/quic/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/quic/quic_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/quic/skip_server_verification.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/build/build_iggy_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/build/build_iggy_consumer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/build/build_iggy_producer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/build/build_stream_topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/build/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/config/config_iggy_consumer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/config/config_iggy_producer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/config/config_iggy_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/config/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/iggy_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/iggy_stream_consumer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/iggy_stream_producer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/stream_builder/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/tcp_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/tcp_connection_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/tcp_connection_stream_kind.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/tcp_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/tcp_tls_connection_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/tcp/tcp_tls_verifier.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/websocket/mod.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/websocket/websocket_client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/websocket/websocket_connection_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/websocket/websocket_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/websocket/websocket_stream_kind.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/sdk/src/websocket/websocket_tls_connection_stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/.devcontainer/Dockerfile +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/.devcontainer/devcontainer.json +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/.devcontainer/docker-compose.yml +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/.gitignore +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/Dockerfile.test +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/LICENSE +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/NOTICE +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/README.md +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/apache_iggy.pyi +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/docker-compose.test.yml +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/scripts/test.sh +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/bin/stub_gen.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/client.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/consumer.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/identifier.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/iterator.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/lib.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/receive_message.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/send_message.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/stream.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/src/topic.rs +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/tests/__init__.py +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/tests/conftest.py +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/tests/test_iggy_sdk.py +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/tests/test_tls.py +0 -0
- {apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/foreign/python/tests/utils.py +0 -0
|
@@ -66,6 +66,7 @@ actix-files = "0.6.10"
|
|
|
66
66
|
actix-web = "4.13.0"
|
|
67
67
|
aes-gcm = "0.10.3"
|
|
68
68
|
ahash = { version = "0.8.12", features = ["serde"] }
|
|
69
|
+
aligned-vec = "0.6.4"
|
|
69
70
|
anyhow = "1.0.102"
|
|
70
71
|
argon2 = "0.5.3"
|
|
71
72
|
arrow = "57.3.0"
|
|
@@ -134,7 +135,6 @@ dirs = "6.0.0"
|
|
|
134
135
|
dlopen2 = "0.8.2"
|
|
135
136
|
dotenvy = "0.15.7"
|
|
136
137
|
elasticsearch = { version = "9.1.0-alpha.1", features = ["rustls-tls"], default-features = false }
|
|
137
|
-
enum_dispatch = "0.3.13"
|
|
138
138
|
enumset = "1.1"
|
|
139
139
|
env_logger = "0.11.9"
|
|
140
140
|
err_trail = { version = "0.11.0", features = ["tracing"] }
|
|
@@ -160,11 +160,11 @@ hwlocality = "1.0.0-alpha.11"
|
|
|
160
160
|
iceberg = "0.9.0"
|
|
161
161
|
iceberg-catalog-rest = "0.9.0"
|
|
162
162
|
iceberg-storage-opendal = "0.9.0"
|
|
163
|
-
iggy = { path = "core/sdk", version = "0.9.
|
|
164
|
-
iggy-cli = { path = "core/cli", version = "0.
|
|
165
|
-
iggy_binary_protocol = { path = "core/binary_protocol", version = "0.9.
|
|
166
|
-
iggy_common = { path = "core/common", version = "0.9.
|
|
167
|
-
iggy_connector_sdk = { path = "core/connectors/sdk", version = "0.2.
|
|
163
|
+
iggy = { path = "core/sdk", version = "0.9.5-edge.1" }
|
|
164
|
+
iggy-cli = { path = "core/cli", version = "0.12.1-edge.1" }
|
|
165
|
+
iggy_binary_protocol = { path = "core/binary_protocol", version = "0.9.5-edge.1" }
|
|
166
|
+
iggy_common = { path = "core/common", version = "0.9.5-edge.1" }
|
|
167
|
+
iggy_connector_sdk = { path = "core/connectors/sdk", version = "0.2.2-edge.1" }
|
|
168
168
|
integration = { path = "core/integration" }
|
|
169
169
|
journal = { path = "core/journal" }
|
|
170
170
|
js-sys = "0.3"
|
|
@@ -183,7 +183,7 @@ mime_guess = "2.0"
|
|
|
183
183
|
mockall = "0.14.0"
|
|
184
184
|
moka = { version = "0.12.14", features = ["future"] }
|
|
185
185
|
mongodb = { version = "3.5.2", features = ["rustls-tls"] }
|
|
186
|
-
nix = { version = "0.31.2", features = ["fs", "resource", "sched"] }
|
|
186
|
+
nix = { version = "0.31.2", features = ["feature", "fs", "resource", "sched"] }
|
|
187
187
|
nonzero_lit = "0.1.2"
|
|
188
188
|
notify = "8.2.0"
|
|
189
189
|
octocrab = "0.49.5"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
# under the License.
|
|
17
17
|
[package]
|
|
18
18
|
name = "iggy_common"
|
|
19
|
-
version = "0.9.
|
|
19
|
+
version = "0.9.5-edge.1"
|
|
20
20
|
description = "Iggy is the persistent message streaming platform written in Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing millions of messages per second."
|
|
21
21
|
edition = "2024"
|
|
22
22
|
license = "Apache-2.0"
|
|
@@ -30,13 +30,13 @@ readme = "README.md"
|
|
|
30
30
|
[dependencies]
|
|
31
31
|
aes-gcm = { workspace = true }
|
|
32
32
|
ahash = { workspace = true }
|
|
33
|
+
aligned-vec = { workspace = true }
|
|
33
34
|
async-broadcast = { workspace = true }
|
|
34
35
|
async-trait = { workspace = true }
|
|
35
36
|
base64 = { workspace = true }
|
|
36
37
|
blake3 = { workspace = true }
|
|
37
38
|
bon = { workspace = true }
|
|
38
39
|
byte-unit = { workspace = true }
|
|
39
|
-
bytemuck = { workspace = true }
|
|
40
40
|
bytes = { workspace = true }
|
|
41
41
|
chrono = { workspace = true }
|
|
42
42
|
clap = { workspace = true }
|
|
@@ -44,7 +44,6 @@ comfy-table = { workspace = true }
|
|
|
44
44
|
compio = { workspace = true }
|
|
45
45
|
crossbeam = { workspace = true }
|
|
46
46
|
derive_more = { workspace = true }
|
|
47
|
-
enumset = { workspace = true }
|
|
48
47
|
err_trail = { workspace = true }
|
|
49
48
|
human-repr = { workspace = true }
|
|
50
49
|
humantime = { workspace = true }
|
|
@@ -16,11 +16,15 @@
|
|
|
16
16
|
* under the License.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
use
|
|
20
|
-
|
|
19
|
+
use crate::alloc::memory_pool::{ALIGNMENT, AlignedBuffer};
|
|
20
|
+
|
|
21
|
+
use super::memory_pool::{AlignedBufferExt, memory_pool};
|
|
22
|
+
use bytes::Bytes;
|
|
21
23
|
use compio::buf::{IoBuf, IoBufMut, SetLen};
|
|
22
|
-
use std::
|
|
23
|
-
|
|
24
|
+
use std::{
|
|
25
|
+
mem::MaybeUninit,
|
|
26
|
+
ops::{Deref, DerefMut},
|
|
27
|
+
};
|
|
24
28
|
|
|
25
29
|
/// A buffer wrapper that participates in memory pooling.
|
|
26
30
|
///
|
|
@@ -32,7 +36,7 @@ pub struct PooledBuffer {
|
|
|
32
36
|
from_pool: bool,
|
|
33
37
|
original_capacity: usize,
|
|
34
38
|
original_bucket_idx: Option<usize>,
|
|
35
|
-
inner:
|
|
39
|
+
inner: AlignedBuffer,
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
impl Default for PooledBuffer {
|
|
@@ -48,13 +52,21 @@ impl PooledBuffer {
|
|
|
48
52
|
///
|
|
49
53
|
/// * `capacity` - The capacity of the buffer
|
|
50
54
|
pub fn with_capacity(capacity: usize) -> Self {
|
|
51
|
-
let (buffer, was_pool_allocated) = memory_pool().acquire_buffer(capacity);
|
|
55
|
+
let (buffer, was_pool_allocated) = memory_pool().acquire_buffer(capacity.max(ALIGNMENT));
|
|
52
56
|
let original_capacity = buffer.capacity();
|
|
53
57
|
let original_bucket_idx = if was_pool_allocated {
|
|
54
58
|
memory_pool().best_fit(original_capacity)
|
|
55
59
|
} else {
|
|
56
60
|
None
|
|
57
61
|
};
|
|
62
|
+
|
|
63
|
+
debug_assert_eq!(
|
|
64
|
+
buffer.as_ptr() as usize % ALIGNMENT,
|
|
65
|
+
0,
|
|
66
|
+
"PooledBuffer not aligned to {} bytes",
|
|
67
|
+
ALIGNMENT
|
|
68
|
+
);
|
|
69
|
+
|
|
58
70
|
Self {
|
|
59
71
|
from_pool: was_pool_allocated,
|
|
60
72
|
original_capacity,
|
|
@@ -63,12 +75,12 @@ impl PooledBuffer {
|
|
|
63
75
|
}
|
|
64
76
|
}
|
|
65
77
|
|
|
66
|
-
/// Creates a new pooled buffer from an existing `
|
|
78
|
+
/// Creates a new pooled buffer from an existing `AlignedBuffer`.
|
|
67
79
|
///
|
|
68
80
|
/// # Arguments
|
|
69
81
|
///
|
|
70
|
-
/// * `existing` - The existing `
|
|
71
|
-
pub fn from_existing(existing:
|
|
82
|
+
/// * `existing` - The existing `AlignedBuffer` buffer
|
|
83
|
+
pub fn from_existing(existing: AlignedBuffer) -> Self {
|
|
72
84
|
Self {
|
|
73
85
|
from_pool: false,
|
|
74
86
|
original_capacity: existing.capacity(),
|
|
@@ -83,7 +95,7 @@ impl PooledBuffer {
|
|
|
83
95
|
from_pool: false,
|
|
84
96
|
original_capacity: 0,
|
|
85
97
|
original_bucket_idx: None,
|
|
86
|
-
inner:
|
|
98
|
+
inner: AlignedBuffer::new(ALIGNMENT),
|
|
87
99
|
}
|
|
88
100
|
}
|
|
89
101
|
|
|
@@ -127,6 +139,52 @@ impl PooledBuffer {
|
|
|
127
139
|
}
|
|
128
140
|
}
|
|
129
141
|
|
|
142
|
+
/// Split the buffer at given position, returning a new PooledBuffer
|
|
143
|
+
/// containing byte [0, at) and leaving [at, len)
|
|
144
|
+
///
|
|
145
|
+
/// # Panic
|
|
146
|
+
/// Panics if at > len
|
|
147
|
+
pub fn split_to(&mut self, at: usize) -> PooledBuffer {
|
|
148
|
+
assert!(
|
|
149
|
+
at <= self.len(),
|
|
150
|
+
"split_to out of bounds: at={}, len={}",
|
|
151
|
+
at,
|
|
152
|
+
self.len()
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
let mut new_buff = PooledBuffer::with_capacity(at);
|
|
156
|
+
new_buff.inner.extend_from_slice(&self.inner[..at]);
|
|
157
|
+
|
|
158
|
+
// SAFETY:
|
|
159
|
+
// - `self.inner.as_ptr().add(at)` is valid for `new_len` because
|
|
160
|
+
// `at + new_len === old_len <= cap`. Similar with `self.inner.as_mut_ptr()`
|
|
161
|
+
//
|
|
162
|
+
// - source range is `[at, at + new_len)` and the destination is
|
|
163
|
+
// `[0, new_len)`. These ranges do not overlap when `at > 0`.
|
|
164
|
+
// - when `at == 0`, the operation is noop
|
|
165
|
+
let new_len = self.len() - at;
|
|
166
|
+
if new_len > 0 {
|
|
167
|
+
unsafe {
|
|
168
|
+
// move [at..] to [0..]
|
|
169
|
+
std::ptr::copy(
|
|
170
|
+
self.inner.as_ptr().add(at),
|
|
171
|
+
self.inner.as_mut_ptr(),
|
|
172
|
+
new_len,
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
self.inner.set_len(new_len);
|
|
176
|
+
}
|
|
177
|
+
} else {
|
|
178
|
+
self.inner.clear();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
new_buff
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
pub fn put<T: AsRef<[u8]>>(&mut self, src: T) {
|
|
185
|
+
self.extend_from_slice(src.as_ref());
|
|
186
|
+
}
|
|
187
|
+
|
|
130
188
|
/// Wrapper for extend_from_slice which might cause resize
|
|
131
189
|
pub fn extend_from_slice(&mut self, extend_from: &[u8]) {
|
|
132
190
|
let before_cap = self.inner.capacity();
|
|
@@ -140,7 +198,9 @@ impl PooledBuffer {
|
|
|
140
198
|
/// Wrapper for put_bytes which might cause resize
|
|
141
199
|
pub fn put_bytes(&mut self, byte: u8, len: usize) {
|
|
142
200
|
let before_cap = self.inner.capacity();
|
|
143
|
-
|
|
201
|
+
|
|
202
|
+
let start = self.inner.len();
|
|
203
|
+
self.inner.resize(start + len, byte);
|
|
144
204
|
|
|
145
205
|
if self.inner.capacity() != before_cap {
|
|
146
206
|
self.check_for_resize();
|
|
@@ -149,18 +209,18 @@ impl PooledBuffer {
|
|
|
149
209
|
|
|
150
210
|
/// Wrapper for put_slice which might cause resize
|
|
151
211
|
pub fn put_slice(&mut self, src: &[u8]) {
|
|
152
|
-
|
|
153
|
-
self.inner.
|
|
154
|
-
|
|
155
|
-
if self.inner.capacity() != before_cap {
|
|
156
|
-
|
|
157
|
-
}
|
|
212
|
+
self.extend_from_slice(src);
|
|
213
|
+
// let before_cap = self.inner.capacity();
|
|
214
|
+
//
|
|
215
|
+
// if self.inner.capacity() != before_cap {
|
|
216
|
+
// self.check_for_resize();
|
|
217
|
+
// }
|
|
158
218
|
}
|
|
159
219
|
|
|
160
220
|
/// Wrapper for put_u32_le which might cause resize
|
|
161
221
|
pub fn put_u32_le(&mut self, value: u32) {
|
|
162
222
|
let before_cap = self.inner.capacity();
|
|
163
|
-
self.inner.
|
|
223
|
+
self.inner.extend_from_slice(&value.to_le_bytes());
|
|
164
224
|
|
|
165
225
|
if self.inner.capacity() != before_cap {
|
|
166
226
|
self.check_for_resize();
|
|
@@ -170,7 +230,7 @@ impl PooledBuffer {
|
|
|
170
230
|
/// Wrapper for put_u64_le which might cause resize
|
|
171
231
|
pub fn put_u64_le(&mut self, value: u64) {
|
|
172
232
|
let before_cap = self.inner.capacity();
|
|
173
|
-
self.inner.
|
|
233
|
+
self.inner.extend_from_slice(&value.to_le_bytes());
|
|
174
234
|
|
|
175
235
|
if self.inner.capacity() != before_cap {
|
|
176
236
|
self.check_for_resize();
|
|
@@ -192,11 +252,12 @@ impl PooledBuffer {
|
|
|
192
252
|
self.inner.is_empty()
|
|
193
253
|
}
|
|
194
254
|
|
|
195
|
-
/// Consumes the PooledBuffer and returns the inner
|
|
255
|
+
/// Consumes the PooledBuffer and returns the inner AlignedBuffer.
|
|
196
256
|
/// Note: This bypasses pool return logic, use with caution.
|
|
197
|
-
pub fn into_inner(self) ->
|
|
257
|
+
pub fn into_inner(self) -> AlignedBuffer {
|
|
198
258
|
let mut this = std::mem::ManuallyDrop::new(self);
|
|
199
|
-
|
|
259
|
+
|
|
260
|
+
std::mem::replace(&mut this.inner, AlignedBuffer::new(ALIGNMENT))
|
|
200
261
|
}
|
|
201
262
|
|
|
202
263
|
/// Freezes the buffer, converting it to an immutable `Bytes`.
|
|
@@ -205,24 +266,26 @@ impl PooledBuffer {
|
|
|
205
266
|
/// return memory to the pool on drop (the frozen Bytes owns the allocation).
|
|
206
267
|
/// The returned `Bytes` is Arc-backed, allowing cheap clones.
|
|
207
268
|
pub fn freeze(&mut self) -> Bytes {
|
|
208
|
-
|
|
209
|
-
|
|
269
|
+
let buf = std::mem::replace(&mut self.inner, AlignedBuffer::new(ALIGNMENT));
|
|
270
|
+
|
|
271
|
+
// Update pool accounting
|
|
210
272
|
if self.from_pool
|
|
211
273
|
&& let Some(bucket_idx) = self.original_bucket_idx
|
|
212
274
|
{
|
|
213
275
|
memory_pool().dec_bucket_in_use(bucket_idx);
|
|
214
276
|
}
|
|
215
|
-
|
|
216
|
-
let inner = std::mem::take(&mut self.inner);
|
|
217
277
|
self.from_pool = false;
|
|
218
278
|
self.original_capacity = 0;
|
|
219
279
|
self.original_bucket_idx = None;
|
|
220
|
-
|
|
280
|
+
|
|
281
|
+
// Zero copy: Bytes takes ownership of the AlignedBuffer
|
|
282
|
+
// and will drop it when refcount reaches zero
|
|
283
|
+
Bytes::from_owner(buf)
|
|
221
284
|
}
|
|
222
285
|
}
|
|
223
286
|
|
|
224
287
|
impl Deref for PooledBuffer {
|
|
225
|
-
type Target =
|
|
288
|
+
type Target = AlignedBuffer;
|
|
226
289
|
|
|
227
290
|
fn deref(&self) -> &Self::Target {
|
|
228
291
|
&self.inner
|
|
@@ -238,7 +301,7 @@ impl DerefMut for PooledBuffer {
|
|
|
238
301
|
impl Drop for PooledBuffer {
|
|
239
302
|
fn drop(&mut self) {
|
|
240
303
|
if self.from_pool {
|
|
241
|
-
let buf = std::mem::
|
|
304
|
+
let buf = std::mem::replace(&mut self.inner, AlignedBuffer::new(ALIGNMENT));
|
|
242
305
|
buf.return_to_pool(self.original_capacity, true);
|
|
243
306
|
}
|
|
244
307
|
}
|
|
@@ -252,27 +315,15 @@ impl From<&[u8]> for PooledBuffer {
|
|
|
252
315
|
}
|
|
253
316
|
}
|
|
254
317
|
|
|
255
|
-
impl
|
|
256
|
-
fn
|
|
257
|
-
|
|
318
|
+
impl AsRef<[u8]> for PooledBuffer {
|
|
319
|
+
fn as_ref(&self) -> &[u8] {
|
|
320
|
+
&self.inner
|
|
258
321
|
}
|
|
259
322
|
}
|
|
260
323
|
|
|
261
|
-
impl
|
|
262
|
-
fn
|
|
263
|
-
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
fn chunk(&self) -> &[u8] {
|
|
267
|
-
self.inner.chunk()
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
fn advance(&mut self, cnt: usize) {
|
|
271
|
-
Buf::advance(&mut self.inner, cnt)
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
fn chunks_vectored<'t>(&'t self, dst: &mut [std::io::IoSlice<'t>]) -> usize {
|
|
275
|
-
self.inner.chunks_vectored(dst)
|
|
324
|
+
impl From<AlignedBuffer> for PooledBuffer {
|
|
325
|
+
fn from(buffer: AlignedBuffer) -> Self {
|
|
326
|
+
Self::from_existing(buffer)
|
|
276
327
|
}
|
|
277
328
|
}
|
|
278
329
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* under the License.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
use
|
|
19
|
+
use aligned_vec::{AVec, ConstAlign};
|
|
20
20
|
use crossbeam::queue::ArrayQueue;
|
|
21
21
|
use human_repr::HumanCount;
|
|
22
22
|
use once_cell::sync::OnceCell;
|
|
@@ -24,18 +24,17 @@ use std::sync::Arc;
|
|
|
24
24
|
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
|
25
25
|
use tracing::{info, trace, warn};
|
|
26
26
|
|
|
27
|
+
pub const ALIGNMENT: usize = 4096;
|
|
28
|
+
pub type AlignedBuffer = AVec<u8, ConstAlign<4096>>;
|
|
29
|
+
|
|
27
30
|
/// Global memory pool instance. Use `memory_pool()` to access it.
|
|
28
31
|
pub static MEMORY_POOL: OnceCell<MemoryPool> = OnceCell::new();
|
|
29
32
|
|
|
30
33
|
/// Total number of distinct bucket sizes.
|
|
31
|
-
const NUM_BUCKETS: usize =
|
|
34
|
+
const NUM_BUCKETS: usize = 28;
|
|
32
35
|
|
|
33
36
|
/// Array of bucket sizes in ascending order. Each entry is a distinct buffer size (in bytes).
|
|
34
37
|
const BUCKET_SIZES: [usize; NUM_BUCKETS] = [
|
|
35
|
-
256,
|
|
36
|
-
512,
|
|
37
|
-
1024,
|
|
38
|
-
2 * 1024,
|
|
39
38
|
4 * 1024,
|
|
40
39
|
8 * 1024,
|
|
41
40
|
16 * 1024,
|
|
@@ -87,7 +86,7 @@ pub struct MemoryPoolConfigOther {
|
|
|
87
86
|
pub bucket_capacity: u32,
|
|
88
87
|
}
|
|
89
88
|
|
|
90
|
-
/// A memory pool that maintains fixed-size buckets for reusing `
|
|
89
|
+
/// A memory pool that maintains fixed-size buckets for reusing `AlignedBuffer` buffers.
|
|
91
90
|
///
|
|
92
91
|
/// Each bucket corresponds to a particular size in `BUCKET_SIZES`. The pool tracks:
|
|
93
92
|
/// - Buffers currently in use (`in_use`)
|
|
@@ -109,7 +108,7 @@ pub struct MemoryPool {
|
|
|
109
108
|
/// Array of queues for reusable buffers. Each queue can store up to `bucket_capacity` buffers.
|
|
110
109
|
/// The length of each queue (`buckets[i].len()`) is how many **free** buffers are currently available.
|
|
111
110
|
/// Free doesn't mean the buffer is allocated, it just means it's not in use.
|
|
112
|
-
buckets: [Arc<ArrayQueue<
|
|
111
|
+
buckets: [Arc<ArrayQueue<AlignedBuffer>>; NUM_BUCKETS],
|
|
113
112
|
|
|
114
113
|
/// Number of buffers **in use** for each bucket size (grow/shrink as they are acquired/released).
|
|
115
114
|
in_use: [Arc<AtomicUsize>; NUM_BUCKETS],
|
|
@@ -175,29 +174,47 @@ impl MemoryPool {
|
|
|
175
174
|
MEMORY_POOL.get_or_init(|| MemoryPool::new(is_enabled, memory_limit, bucket_capacity));
|
|
176
175
|
}
|
|
177
176
|
|
|
178
|
-
/// Acquire a `
|
|
177
|
+
/// Acquire a `AlignedBuffer` buffer with at least `capacity` bytes.
|
|
179
178
|
///
|
|
180
179
|
/// - If a bucket can fit `capacity`, try to pop from its free buffer queue; otherwise create a new buffer.
|
|
181
180
|
/// - If `memory_limit` would be exceeded, allocate outside the pool.
|
|
182
181
|
///
|
|
183
182
|
/// Returns a tuple of (buffer, was_pool_allocated) where was_pool_allocated indicates if the buffer
|
|
184
183
|
/// was allocated from the pool (true) or externally (false).
|
|
185
|
-
pub fn acquire_buffer(&self, capacity: usize) -> (
|
|
184
|
+
pub fn acquire_buffer(&self, capacity: usize) -> (AlignedBuffer, bool) {
|
|
186
185
|
if !self.is_enabled {
|
|
187
|
-
return (
|
|
186
|
+
return (allocate_aligned_buffer(capacity), false);
|
|
188
187
|
}
|
|
189
188
|
|
|
190
189
|
let current = self.pool_current_size();
|
|
191
190
|
|
|
192
191
|
match self.best_fit(capacity) {
|
|
193
192
|
Some(idx) => {
|
|
193
|
+
let new_size = BUCKET_SIZES[idx];
|
|
194
|
+
|
|
194
195
|
if let Some(mut buf) = self.buckets[idx].pop() {
|
|
195
196
|
buf.clear();
|
|
197
|
+
|
|
198
|
+
if buf.capacity() < capacity {
|
|
199
|
+
warn!(
|
|
200
|
+
"Pooled buffer too small! bucket[{}]={}, buf.capacity()={}, requested={}. Dropping and allocating new.",
|
|
201
|
+
idx,
|
|
202
|
+
new_size,
|
|
203
|
+
buf.capacity(),
|
|
204
|
+
capacity
|
|
205
|
+
);
|
|
206
|
+
drop(buf);
|
|
207
|
+
|
|
208
|
+
let new_buf = allocate_aligned_buffer(new_size);
|
|
209
|
+
self.inc_bucket_alloc(idx);
|
|
210
|
+
self.inc_bucket_in_use(idx);
|
|
211
|
+
return (new_buf, true);
|
|
212
|
+
}
|
|
213
|
+
|
|
196
214
|
self.inc_bucket_in_use(idx);
|
|
197
215
|
return (buf, true);
|
|
198
216
|
}
|
|
199
217
|
|
|
200
|
-
let new_size = BUCKET_SIZES[idx];
|
|
201
218
|
if current + new_size > self.memory_limit {
|
|
202
219
|
self.set_capacity_warning(true);
|
|
203
220
|
trace!(
|
|
@@ -205,12 +222,12 @@ impl MemoryPool {
|
|
|
205
222
|
new_size, current, self.memory_limit
|
|
206
223
|
);
|
|
207
224
|
self.inc_external_allocations();
|
|
208
|
-
return (
|
|
225
|
+
return (allocate_aligned_buffer(new_size), false);
|
|
209
226
|
}
|
|
210
227
|
|
|
211
228
|
self.inc_bucket_alloc(idx);
|
|
212
229
|
self.inc_bucket_in_use(idx);
|
|
213
|
-
(
|
|
230
|
+
(allocate_aligned_buffer(new_size), true)
|
|
214
231
|
}
|
|
215
232
|
None => {
|
|
216
233
|
if current + capacity > self.memory_limit {
|
|
@@ -219,16 +236,16 @@ impl MemoryPool {
|
|
|
219
236
|
capacity, current, self.memory_limit
|
|
220
237
|
);
|
|
221
238
|
self.inc_external_allocations();
|
|
222
|
-
return (
|
|
239
|
+
return (allocate_aligned_buffer(capacity), false);
|
|
223
240
|
}
|
|
224
241
|
|
|
225
242
|
self.inc_external_allocations();
|
|
226
|
-
(
|
|
243
|
+
(allocate_aligned_buffer(capacity), false)
|
|
227
244
|
}
|
|
228
245
|
}
|
|
229
246
|
}
|
|
230
247
|
|
|
231
|
-
/// Return a `
|
|
248
|
+
/// Return a `AlignedBuffer` buffer previously acquired from the pool.
|
|
232
249
|
///
|
|
233
250
|
/// - If `current_capacity` differs from `original_capacity`, increments `resize_events`.
|
|
234
251
|
/// - If a matching bucket exists, place it back in that bucket's queue (if space is available).
|
|
@@ -236,7 +253,7 @@ impl MemoryPool {
|
|
|
236
253
|
/// - The `was_pool_allocated` flag indicates if this buffer was originally allocated from the pool.
|
|
237
254
|
pub fn release_buffer(
|
|
238
255
|
&self,
|
|
239
|
-
buffer:
|
|
256
|
+
buffer: AlignedBuffer,
|
|
240
257
|
original_capacity: usize,
|
|
241
258
|
was_pool_allocated: bool,
|
|
242
259
|
) {
|
|
@@ -448,16 +465,21 @@ impl MemoryPool {
|
|
|
448
465
|
|
|
449
466
|
/// Return a buffer to the pool by calling `release_buffer` with the original capacity.
|
|
450
467
|
/// This extension trait makes it easy to do `some_bytes.return_to_pool(orig_cap, was_pool_allocated)`.
|
|
451
|
-
pub trait
|
|
468
|
+
pub trait AlignedBufferExt {
|
|
452
469
|
fn return_to_pool(self, original_capacity: usize, was_pool_allocated: bool);
|
|
453
470
|
}
|
|
454
471
|
|
|
455
|
-
impl
|
|
472
|
+
impl AlignedBufferExt for AlignedBuffer {
|
|
456
473
|
fn return_to_pool(self, original_capacity: usize, was_pool_allocated: bool) {
|
|
457
474
|
memory_pool().release_buffer(self, original_capacity, was_pool_allocated);
|
|
458
475
|
}
|
|
459
476
|
}
|
|
460
477
|
|
|
478
|
+
fn allocate_aligned_buffer(capacity: usize) -> AlignedBuffer {
|
|
479
|
+
let aligned_capacity = capacity.next_multiple_of(ALIGNMENT).max(ALIGNMENT);
|
|
480
|
+
AlignedBuffer::with_capacity(ALIGNMENT, aligned_capacity)
|
|
481
|
+
}
|
|
482
|
+
|
|
461
483
|
/// Convert a size in bytes to a string like "8KiB" or "2MiB".
|
|
462
484
|
fn size_str(size: usize) -> String {
|
|
463
485
|
if size >= 1024 * 1024 {
|
{apache_iggy-0.7.4.dev1 → apache_iggy-0.7.5.dev1}/core/common/src/commands/messages/send_messages.rs
RENAMED
|
@@ -203,12 +203,19 @@ impl Serialize for SendMessages {
|
|
|
203
203
|
let payload_base64 = BASE64.encode(msg_view.payload());
|
|
204
204
|
map.insert("payload", serde_json::to_value(payload_base64).unwrap());
|
|
205
205
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
206
|
+
match msg_view.user_headers_map() {
|
|
207
|
+
Ok(Some(headers)) => {
|
|
208
|
+
let entries: Vec<HeaderEntry> = headers
|
|
209
|
+
.into_iter()
|
|
210
|
+
.map(|(k, v)| HeaderEntry { key: k, value: v })
|
|
211
|
+
.collect();
|
|
212
|
+
map.insert("user_headers", serde_json::to_value(&entries).unwrap());
|
|
213
|
+
}
|
|
214
|
+
_ if msg_view.user_headers().is_some() => {
|
|
215
|
+
let raw_base64 = BASE64.encode(msg_view.user_headers().unwrap());
|
|
216
|
+
map.insert("user_headers", serde_json::to_value(raw_base64).unwrap());
|
|
217
|
+
}
|
|
218
|
+
_ => {}
|
|
212
219
|
}
|
|
213
220
|
|
|
214
221
|
map
|
|
@@ -310,29 +317,38 @@ impl<'de> Deserialize<'de> for SendMessages {
|
|
|
310
317
|
.decode(payload)
|
|
311
318
|
.map_err(|_| de::Error::custom("Invalid base64 payload"))?;
|
|
312
319
|
|
|
313
|
-
let headers_map
|
|
314
|
-
if headers.
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
let
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
)
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
320
|
+
let (headers_map, raw_headers) =
|
|
321
|
+
if let Some(headers) = msg.get("user_headers") {
|
|
322
|
+
if headers.is_null() {
|
|
323
|
+
(None, None)
|
|
324
|
+
} else if let Some(base64_str) = headers.as_str() {
|
|
325
|
+
// Raw base64-encoded header bytes (e.g. client-side encrypted)
|
|
326
|
+
let raw = BASE64.decode(base64_str).map_err(|e| {
|
|
327
|
+
de::Error::custom(format!(
|
|
328
|
+
"Invalid base64 headers: {e}"
|
|
329
|
+
))
|
|
330
|
+
})?;
|
|
331
|
+
(None, Some(Bytes::from(raw)))
|
|
332
|
+
} else {
|
|
333
|
+
let entries: Vec<HeaderEntry> = serde_json::from_value(
|
|
334
|
+
headers.clone(),
|
|
335
|
+
)
|
|
336
|
+
.map_err(|e| {
|
|
337
|
+
de::Error::custom(format!(
|
|
338
|
+
"Invalid headers format: {e}"
|
|
339
|
+
))
|
|
340
|
+
})?;
|
|
341
|
+
let mut map = HashMap::new();
|
|
342
|
+
for entry in entries {
|
|
343
|
+
map.insert(entry.key, entry.value);
|
|
344
|
+
}
|
|
345
|
+
(Some(map), None)
|
|
328
346
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
None
|
|
333
|
-
};
|
|
347
|
+
} else {
|
|
348
|
+
(None, None)
|
|
349
|
+
};
|
|
334
350
|
|
|
335
|
-
let iggy_message = if let Some(headers) = headers_map {
|
|
351
|
+
let mut iggy_message = if let Some(headers) = headers_map {
|
|
336
352
|
IggyMessage::builder()
|
|
337
353
|
.id(id)
|
|
338
354
|
.payload(payload_bytes.into())
|
|
@@ -355,6 +371,11 @@ impl<'de> Deserialize<'de> for SendMessages {
|
|
|
355
371
|
})?
|
|
356
372
|
};
|
|
357
373
|
|
|
374
|
+
if let Some(raw) = raw_headers {
|
|
375
|
+
iggy_message.header.user_headers_length = raw.len() as u32;
|
|
376
|
+
iggy_message.user_headers = Some(raw);
|
|
377
|
+
}
|
|
378
|
+
|
|
358
379
|
iggy_messages.push(iggy_message);
|
|
359
380
|
}
|
|
360
381
|
|
|
@@ -96,7 +96,6 @@ pub use types::configuration::websocket_config::websocket_client_config::*;
|
|
|
96
96
|
pub use types::configuration::websocket_config::websocket_client_config_builder::*;
|
|
97
97
|
pub use types::configuration::websocket_config::websocket_client_reconnection_config::*;
|
|
98
98
|
pub use types::configuration::websocket_config::websocket_connection_string_options::*;
|
|
99
|
-
pub use types::consensus::*;
|
|
100
99
|
pub use types::consumer::consumer_group::*;
|
|
101
100
|
pub use types::consumer::consumer_group_id::*;
|
|
102
101
|
pub use types::consumer::consumer_group_offsets::*;
|
|
@@ -24,7 +24,6 @@ use crate::{
|
|
|
24
24
|
Stream, StreamDetails, Topic, TopicDetails, UserInfo, UserInfoDetails, UserStatus,
|
|
25
25
|
};
|
|
26
26
|
use bytes::Bytes;
|
|
27
|
-
use secrecy::SecretString;
|
|
28
27
|
use std::collections::HashMap;
|
|
29
28
|
use std::str::from_utf8;
|
|
30
29
|
|
|
@@ -508,9 +507,7 @@ pub fn map_raw_pat(payload: Bytes) -> Result<RawPersonalAccessToken, IggyError>
|
|
|
508
507
|
let token = from_utf8(&payload[1..1 + token_length as usize])
|
|
509
508
|
.map_err(|_| IggyError::InvalidUtf8)?
|
|
510
509
|
.to_string();
|
|
511
|
-
Ok(RawPersonalAccessToken {
|
|
512
|
-
token: SecretString::from(token),
|
|
513
|
-
})
|
|
510
|
+
Ok(RawPersonalAccessToken { token })
|
|
514
511
|
}
|
|
515
512
|
|
|
516
513
|
pub fn map_client(payload: Bytes) -> Result<ClientInfoDetails, IggyError> {
|