├── .gitattributes
├── .github
├── codeql
│ └── codeql-config.yml
└── workflows
│ ├── ci-low-cadence.yml
│ ├── ci.yml
│ ├── codeql.yml
│ ├── release-documentation.yml
│ └── release.yml
├── .gitignore
├── CMakeLists.txt
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── aeron-agent
├── README.md
└── src
│ ├── main
│ ├── java
│ │ └── io
│ │ │ └── aeron
│ │ │ └── agent
│ │ │ ├── ArchiveComponentLogger.java
│ │ │ ├── ArchiveEventCode.java
│ │ │ ├── ArchiveEventDissector.java
│ │ │ ├── ArchiveEventEncoder.java
│ │ │ ├── ArchiveEventLogger.java
│ │ │ ├── ArchiveInterceptor.java
│ │ │ ├── ChannelEndpointInterceptor.java
│ │ │ ├── CleanupInterceptor.java
│ │ │ ├── ClusterComponentLogger.java
│ │ │ ├── ClusterEventCode.java
│ │ │ ├── ClusterEventDissector.java
│ │ │ ├── ClusterEventEncoder.java
│ │ │ ├── ClusterEventLogger.java
│ │ │ ├── ClusterInterceptor.java
│ │ │ ├── CmdInterceptor.java
│ │ │ ├── CollectingEventLogReaderAgent.java
│ │ │ ├── CollectingEventLogReaderAgentMBean.java
│ │ │ ├── CommonEventDissector.java
│ │ │ ├── CommonEventEncoder.java
│ │ │ ├── ComponentLogger.java
│ │ │ ├── ConfigOption.java
│ │ │ ├── ControlInterceptor.java
│ │ │ ├── DissectFunction.java
│ │ │ ├── DriverComponentLogger.java
│ │ │ ├── DriverEventCode.java
│ │ │ ├── DriverEventDissector.java
│ │ │ ├── DriverEventEncoder.java
│ │ │ ├── DriverEventLogger.java
│ │ │ ├── DriverInterceptor.java
│ │ │ ├── DynamicLoggingAgent.java
│ │ │ ├── EventCode.java
│ │ │ ├── EventCodeType.java
│ │ │ ├── EventConfiguration.java
│ │ │ ├── EventLogAgent.java
│ │ │ ├── EventLogReaderAgent.java
│ │ │ ├── LogUtil.java
│ │ │ └── package-info.java
│ └── resources
│ │ └── META-INF
│ │ └── services
│ │ └── io.aeron.agent.ComponentLogger
│ └── test
│ └── java
│ └── io
│ └── aeron
│ └── agent
│ ├── AgentTests.java
│ ├── ArchiveEventCodeTest.java
│ ├── ArchiveEventDissectorTest.java
│ ├── ArchiveEventEncoderTest.java
│ ├── ArchiveEventLoggerTest.java
│ ├── ArchiveLoggingAgentTest.java
│ ├── ClusterEventCodeTest.java
│ ├── ClusterEventDissectorTest.java
│ ├── ClusterEventEncoderTest.java
│ ├── ClusterEventLoggerTest.java
│ ├── ClusterLoggingAgentTest.java
│ ├── CommonEventDissectorTest.java
│ ├── CommonEventEncoderTest.java
│ ├── ConfigOptionTest.java
│ ├── DriverEventCodeTest.java
│ ├── DriverEventDissectorTest.java
│ ├── DriverEventEncoderTest.java
│ ├── DriverEventLoggerTest.java
│ ├── DriverLoggingAgentTest.java
│ ├── EventConfigurationTest.java
│ └── LogUtilTest.java
├── aeron-all
└── README.md
├── aeron-annotations
└── src
│ └── main
│ ├── java
│ └── io
│ │ └── aeron
│ │ ├── config
│ │ ├── Config.java
│ │ ├── ConfigInfo.java
│ │ ├── ConfigProcessor.java
│ │ ├── DefaultType.java
│ │ ├── ExpectedCConfig.java
│ │ ├── ExpectedConfig.java
│ │ ├── docgen
│ │ │ ├── ConfigDocGenerator.java
│ │ │ └── GenerateConfigDocTask.java
│ │ └── validation
│ │ │ ├── Entry.java
│ │ │ ├── ValidateConfigExpectationsTask.java
│ │ │ ├── Validation.java
│ │ │ ├── ValidationReport.java
│ │ │ └── Validator.java
│ │ ├── counter
│ │ ├── AeronCounter.java
│ │ ├── CounterInfo.java
│ │ ├── CounterProcessor.java
│ │ └── validation
│ │ │ ├── ValidateCounterExpectationsTask.java
│ │ │ ├── Validation.java
│ │ │ ├── ValidationReport.java
│ │ │ └── Validator.java
│ │ ├── utility
│ │ ├── ElementIO.java
│ │ └── Processor.java
│ │ ├── validation
│ │ └── Grep.java
│ │ └── version
│ │ ├── Version.java
│ │ ├── VersionProcessor.java
│ │ └── Versioned.java
│ └── resources
│ └── META-INF
│ └── services
│ └── javax.annotation.processing.Processor
├── aeron-archive
├── README.md
└── src
│ ├── main
│ ├── c
│ │ ├── CMakeLists.txt
│ │ └── client
│ │ │ ├── README.md
│ │ │ ├── aeron_archive.h
│ │ │ ├── aeron_archive_async_connect.c
│ │ │ ├── aeron_archive_async_connect.h
│ │ │ ├── aeron_archive_client.c
│ │ │ ├── aeron_archive_client.h
│ │ │ ├── aeron_archive_configuration.c
│ │ │ ├── aeron_archive_configuration.h
│ │ │ ├── aeron_archive_context.c
│ │ │ ├── aeron_archive_context.h
│ │ │ ├── aeron_archive_control_response_poller.c
│ │ │ ├── aeron_archive_control_response_poller.h
│ │ │ ├── aeron_archive_credentials_supplier.c
│ │ │ ├── aeron_archive_credentials_supplier.h
│ │ │ ├── aeron_archive_proxy.c
│ │ │ ├── aeron_archive_proxy.h
│ │ │ ├── aeron_archive_recording_descriptor_poller.c
│ │ │ ├── aeron_archive_recording_descriptor_poller.h
│ │ │ ├── aeron_archive_recording_pos.c
│ │ │ ├── aeron_archive_recording_signal.c
│ │ │ ├── aeron_archive_recording_signal.h
│ │ │ ├── aeron_archive_recording_subscription_descriptor_poller.c
│ │ │ ├── aeron_archive_recording_subscription_descriptor_poller.h
│ │ │ ├── aeron_archive_replay_merge.c
│ │ │ ├── aeron_archive_replay_params.c
│ │ │ ├── aeron_archive_replay_params.h
│ │ │ └── aeron_archive_replication_params.c
│ ├── cpp
│ │ ├── CMakeLists.txt
│ │ └── client
│ │ │ ├── AeronArchive.cpp
│ │ │ ├── AeronArchive.h
│ │ │ ├── AeronArchiveVersion.cpp
│ │ │ ├── AeronArchiveVersion.h
│ │ │ ├── ArchiveConfiguration.h
│ │ │ ├── ArchiveException.h
│ │ │ ├── ArchiveProxy.cpp
│ │ │ ├── ArchiveProxy.h
│ │ │ ├── ControlResponseAdapter.cpp
│ │ │ ├── ControlResponseAdapter.h
│ │ │ ├── ControlResponsePoller.cpp
│ │ │ ├── ControlResponsePoller.h
│ │ │ ├── RecordingDescriptorPoller.cpp
│ │ │ ├── RecordingDescriptorPoller.h
│ │ │ ├── RecordingEventsAdapter.cpp
│ │ │ ├── RecordingEventsAdapter.h
│ │ │ ├── RecordingEventsPoller.cpp
│ │ │ ├── RecordingEventsPoller.h
│ │ │ ├── RecordingPos.h
│ │ │ ├── RecordingSignalAdapter.cpp
│ │ │ ├── RecordingSignalAdapter.h
│ │ │ ├── RecordingSubscriptionDescriptorPoller.cpp
│ │ │ ├── RecordingSubscriptionDescriptorPoller.h
│ │ │ ├── ReplayMerge.cpp
│ │ │ └── ReplayMerge.h
│ ├── cpp_wrapper
│ │ ├── CMakeLists.txt
│ │ └── client
│ │ │ ├── archive
│ │ │ ├── AeronArchive.h
│ │ │ ├── ArchiveContext.h
│ │ │ ├── CredentialsSupplier.h
│ │ │ ├── RecordingPos.h
│ │ │ ├── ReplayMerge.h
│ │ │ ├── ReplayParams.h
│ │ │ └── ReplicationParams.h
│ │ │ └── util
│ │ │ └── ArchiveExceptions.h
│ ├── java
│ │ └── io
│ │ │ └── aeron
│ │ │ └── archive
│ │ │ ├── AbstractListRecordingsSession.java
│ │ │ ├── Archive.java
│ │ │ ├── ArchiveConductor.java
│ │ │ ├── ArchiveCounters.java
│ │ │ ├── ArchiveMarkFile.java
│ │ │ ├── ArchiveMigrationPlanner.java
│ │ │ ├── ArchiveMigrationStep.java
│ │ │ ├── ArchiveMigration_0_1.java
│ │ │ ├── ArchiveMigration_1_2.java
│ │ │ ├── ArchiveMigration_2_3.java
│ │ │ ├── ArchiveThreadingMode.java
│ │ │ ├── ArchiveTool.java
│ │ │ ├── ArchivingMediaDriver.java
│ │ │ ├── Catalog.java
│ │ │ ├── CatalogIndex.java
│ │ │ ├── CatalogTool.java
│ │ │ ├── CatalogView.java
│ │ │ ├── ControlRequestDecoders.java
│ │ │ ├── ControlResponseProxy.java
│ │ │ ├── ControlSession.java
│ │ │ ├── ControlSessionAdapter.java
│ │ │ ├── ControlSessionProxy.java
│ │ │ ├── CreateReplayPublicationSession.java
│ │ │ ├── DedicatedModeArchiveConductor.java
│ │ │ ├── DeleteSegmentsSession.java
│ │ │ ├── ListRecordingByIdSession.java
│ │ │ ├── ListRecordingSubscriptionsSession.java
│ │ │ ├── ListRecordingsForUriSession.java
│ │ │ ├── ListRecordingsSession.java
│ │ │ ├── MigrationUtils.java
│ │ │ ├── RecordingEventsProxy.java
│ │ │ ├── RecordingReader.java
│ │ │ ├── RecordingSession.java
│ │ │ ├── RecordingSummary.java
│ │ │ ├── RecordingWriter.java
│ │ │ ├── ReplaySession.java
│ │ │ ├── ReplicationCredentialsSupplier.java
│ │ │ ├── ReplicationSession.java
│ │ │ ├── Session.java
│ │ │ ├── SessionWorker.java
│ │ │ ├── SharedModeArchiveConductor.java
│ │ │ ├── SimpleFragmentHandler.java
│ │ │ ├── checksum
│ │ │ ├── Checksum.java
│ │ │ ├── Checksums.java
│ │ │ └── package-info.java
│ │ │ ├── client
│ │ │ ├── AeronArchive.java
│ │ │ ├── ArchiveEvent.java
│ │ │ ├── ArchiveException.java
│ │ │ ├── ArchiveProxy.java
│ │ │ ├── ControlEventListener.java
│ │ │ ├── ControlResponseAdapter.java
│ │ │ ├── ControlResponseListener.java
│ │ │ ├── ControlResponsePoller.java
│ │ │ ├── RecordingDescriptorConsumer.java
│ │ │ ├── RecordingDescriptorPoller.java
│ │ │ ├── RecordingEventsAdapter.java
│ │ │ ├── RecordingEventsListener.java
│ │ │ ├── RecordingEventsPoller.java
│ │ │ ├── RecordingSignalAdapter.java
│ │ │ ├── RecordingSignalConsumer.java
│ │ │ ├── RecordingSignalPoller.java
│ │ │ ├── RecordingSubscriptionDescriptorConsumer.java
│ │ │ ├── RecordingSubscriptionDescriptorPoller.java
│ │ │ ├── ReplayMerge.java
│ │ │ ├── ReplayParams.java
│ │ │ ├── ReplicationParams.java
│ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── status
│ │ │ ├── RecordingPos.java
│ │ │ └── package-info.java
│ └── resources
│ │ └── archive
│ │ ├── aeron-archive-codecs.xml
│ │ ├── aeron-archive-mark-codecs.xml
│ │ └── fpl
│ │ └── sbe.xsd
│ └── test
│ ├── c
│ ├── CMakeLists.txt
│ ├── TestArchive.h
│ └── client
│ │ └── aeron_archive_test.cpp
│ ├── cpp
│ ├── AeronArchiveTest.cpp
│ ├── CMakeLists.txt
│ ├── TestArchive.h
│ └── client
│ │ └── AeronArchiveVersionTest.cpp
│ ├── cpp_wrapper
│ ├── AeronArchiveWrapperTest.cpp
│ ├── CMakeLists.txt
│ └── TestArchive.h
│ └── java
│ └── io
│ └── aeron
│ └── archive
│ ├── ArchiveContextTest.java
│ ├── ArchiveCountersTest.java
│ ├── ArchiveMarkFileTest.java
│ ├── ArchiveMigrationUtils.java
│ ├── ArchiveMigration_2_3Test.java
│ ├── ArchiveTest.java
│ ├── ArchiveTests.java
│ ├── ArchiveToolCliTest.java
│ ├── ArchiveToolSeparateMarkFileTest.java
│ ├── ArchiveToolTests.java
│ ├── CatalogIndexTest.java
│ ├── CatalogTest.java
│ ├── CatalogViewTest.java
│ ├── ControlSessionAdapterTest.java
│ ├── ControlSessionAdapterV6Test.java
│ ├── ControlSessionTest.java
│ ├── DeleteSegmentsSessionTest.java
│ ├── FailControlResponseListener.java
│ ├── FailRecordingEventsListener.java
│ ├── ListRecordingByIdSessionTest.java
│ ├── ListRecordingsForUriSessionTest.java
│ ├── ListRecordingsSessionTest.java
│ ├── RecordingSessionTest.java
│ ├── RecordingWriterTest.java
│ ├── ReplaySessionTest.java
│ ├── checksum
│ └── ChecksumsTest.java
│ ├── client
│ ├── AeronArchiveTest.java
│ └── ArchiveExceptionTest.java
│ └── status
│ └── RecordingPosTest.java
├── aeron-client
├── README.md
└── src
│ ├── main
│ ├── c
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── aeron_agent.c
│ │ ├── aeron_agent.h
│ │ ├── aeron_alloc.c
│ │ ├── aeron_alloc.h
│ │ ├── aeron_client.c
│ │ ├── aeron_client.h
│ │ ├── aeron_client_conductor.c
│ │ ├── aeron_client_conductor.h
│ │ ├── aeron_cnc.c
│ │ ├── aeron_cnc_file_descriptor.c
│ │ ├── aeron_cnc_file_descriptor.h
│ │ ├── aeron_common.h
│ │ ├── aeron_context.c
│ │ ├── aeron_context.h
│ │ ├── aeron_counter.c
│ │ ├── aeron_counter.h
│ │ ├── aeron_counters.h
│ │ ├── aeron_exclusive_publication.c
│ │ ├── aeron_exclusive_publication.h
│ │ ├── aeron_fragment_assembler.c
│ │ ├── aeron_fragment_assembler.h
│ │ ├── aeron_image.c
│ │ ├── aeron_image.h
│ │ ├── aeron_log_buffer.c
│ │ ├── aeron_log_buffer.h
│ │ ├── aeron_publication.c
│ │ ├── aeron_publication.h
│ │ ├── aeron_socket.c
│ │ ├── aeron_socket.h
│ │ ├── aeron_subscription.c
│ │ ├── aeron_subscription.h
│ │ ├── aeron_version.c
│ │ ├── aeron_windows.c
│ │ ├── aeron_windows.h
│ │ ├── aeronc.c
│ │ ├── aeronc.h
│ │ ├── collections
│ │ │ ├── aeron_array_to_ptr_hash_map.c
│ │ │ ├── aeron_array_to_ptr_hash_map.h
│ │ │ ├── aeron_bit_set.c
│ │ │ ├── aeron_bit_set.h
│ │ │ ├── aeron_hashing.c
│ │ │ ├── aeron_hashing.h
│ │ │ ├── aeron_int64_counter_map.c
│ │ │ ├── aeron_int64_counter_map.h
│ │ │ ├── aeron_int64_to_ptr_hash_map.c
│ │ │ ├── aeron_int64_to_ptr_hash_map.h
│ │ │ ├── aeron_int64_to_tagged_ptr_hash_map.c
│ │ │ ├── aeron_int64_to_tagged_ptr_hash_map.h
│ │ │ ├── aeron_linked_queue.c
│ │ │ ├── aeron_linked_queue.h
│ │ │ ├── aeron_map.c
│ │ │ ├── aeron_map.h
│ │ │ ├── aeron_str_to_ptr_hash_map.c
│ │ │ └── aeron_str_to_ptr_hash_map.h
│ │ ├── command
│ │ │ └── aeron_control_protocol.h
│ │ ├── concurrent
│ │ │ ├── aeron_atomic.c
│ │ │ ├── aeron_atomic.h
│ │ │ ├── aeron_atomic64_c11.h
│ │ │ ├── aeron_atomic64_gcc_x86_64.h
│ │ │ ├── aeron_atomic64_msvc.h
│ │ │ ├── aeron_blocking_linked_queue.c
│ │ │ ├── aeron_blocking_linked_queue.h
│ │ │ ├── aeron_broadcast_descriptor.h
│ │ │ ├── aeron_broadcast_receiver.c
│ │ │ ├── aeron_broadcast_receiver.h
│ │ │ ├── aeron_broadcast_transmitter.c
│ │ │ ├── aeron_broadcast_transmitter.h
│ │ │ ├── aeron_concurrent_array_queue.h
│ │ │ ├── aeron_counters_manager.c
│ │ │ ├── aeron_counters_manager.h
│ │ │ ├── aeron_distinct_error_log.c
│ │ │ ├── aeron_distinct_error_log.h
│ │ │ ├── aeron_executor.c
│ │ │ ├── aeron_executor.h
│ │ │ ├── aeron_logbuffer_descriptor.c
│ │ │ ├── aeron_logbuffer_descriptor.h
│ │ │ ├── aeron_mpsc_concurrent_array_queue.c
│ │ │ ├── aeron_mpsc_concurrent_array_queue.h
│ │ │ ├── aeron_mpsc_rb.c
│ │ │ ├── aeron_mpsc_rb.h
│ │ │ ├── aeron_rb.h
│ │ │ ├── aeron_spsc_concurrent_array_queue.c
│ │ │ ├── aeron_spsc_concurrent_array_queue.h
│ │ │ ├── aeron_spsc_rb.c
│ │ │ ├── aeron_spsc_rb.h
│ │ │ ├── aeron_term_gap_filler.c
│ │ │ ├── aeron_term_gap_filler.h
│ │ │ ├── aeron_term_gap_scanner.c
│ │ │ ├── aeron_term_gap_scanner.h
│ │ │ ├── aeron_term_rebuilder.c
│ │ │ ├── aeron_term_rebuilder.h
│ │ │ ├── aeron_term_scanner.c
│ │ │ ├── aeron_term_scanner.h
│ │ │ ├── aeron_term_unblocker.c
│ │ │ ├── aeron_term_unblocker.h
│ │ │ ├── aeron_thread.c
│ │ │ └── aeron_thread.h
│ │ ├── protocol
│ │ │ ├── aeron_udp_protocol.c
│ │ │ └── aeron_udp_protocol.h
│ │ ├── reports
│ │ │ ├── aeron_loss_reporter.c
│ │ │ └── aeron_loss_reporter.h
│ │ ├── status
│ │ │ ├── aeron_local_sockaddr.c
│ │ │ └── aeron_local_sockaddr.h
│ │ ├── uri
│ │ │ ├── aeron_uri.c
│ │ │ ├── aeron_uri.h
│ │ │ ├── aeron_uri_string_builder.c
│ │ │ └── aeron_uri_string_builder.h
│ │ └── util
│ │ │ ├── aeron_arrayutil.c
│ │ │ ├── aeron_arrayutil.h
│ │ │ ├── aeron_bitutil.c
│ │ │ ├── aeron_bitutil.h
│ │ │ ├── aeron_clock.c
│ │ │ ├── aeron_clock.h
│ │ │ ├── aeron_deque.c
│ │ │ ├── aeron_deque.h
│ │ │ ├── aeron_dlopen.c
│ │ │ ├── aeron_dlopen.h
│ │ │ ├── aeron_env.c
│ │ │ ├── aeron_env.h
│ │ │ ├── aeron_error.c
│ │ │ ├── aeron_error.h
│ │ │ ├── aeron_fileutil.c
│ │ │ ├── aeron_fileutil.h
│ │ │ ├── aeron_http_util.c
│ │ │ ├── aeron_http_util.h
│ │ │ ├── aeron_math.c
│ │ │ ├── aeron_math.h
│ │ │ ├── aeron_netutil.c
│ │ │ ├── aeron_netutil.h
│ │ │ ├── aeron_parse_util.c
│ │ │ ├── aeron_parse_util.h
│ │ │ ├── aeron_platform.h
│ │ │ ├── aeron_properties_util.c
│ │ │ ├── aeron_properties_util.h
│ │ │ ├── aeron_strutil.c
│ │ │ ├── aeron_strutil.h
│ │ │ ├── aeron_symbol_table.c
│ │ │ └── aeron_symbol_table.h
│ ├── cpp
│ │ ├── Aeron.cpp
│ │ ├── Aeron.h
│ │ ├── AeronCounters.h
│ │ ├── AeronVersion.cpp
│ │ ├── AeronVersion.h
│ │ ├── BufferBuilder.h
│ │ ├── CMakeLists.txt
│ │ ├── ChannelUri.h
│ │ ├── ChannelUriStringBuilder.h
│ │ ├── ClientConductor.cpp
│ │ ├── ClientConductor.h
│ │ ├── CncFileDescriptor.h
│ │ ├── CncFileReader.h
│ │ ├── Context.cpp
│ │ ├── Context.h
│ │ ├── ControlledFragmentAssembler.h
│ │ ├── Counter.cpp
│ │ ├── Counter.h
│ │ ├── DriverListenerAdapter.h
│ │ ├── DriverProxy.h
│ │ ├── ExclusivePublication.cpp
│ │ ├── ExclusivePublication.h
│ │ ├── FragmentAssembler.h
│ │ ├── HeartbeatTimestamp.h
│ │ ├── Image.h
│ │ ├── ImageControlledFragmentAssembler.h
│ │ ├── ImageFragmentAssembler.h
│ │ ├── LogBuffers.cpp
│ │ ├── LogBuffers.h
│ │ ├── Publication.cpp
│ │ ├── Publication.h
│ │ ├── Subscription.cpp
│ │ ├── Subscription.h
│ │ ├── command
│ │ │ ├── ClientTimeoutFlyweight.h
│ │ │ ├── ControlProtocolEvents.h
│ │ │ ├── CorrelatedMessageFlyweight.h
│ │ │ ├── CounterMessageFlyweight.h
│ │ │ ├── CounterUpdateFlyweight.h
│ │ │ ├── DestinationMessageFlyweight.h
│ │ │ ├── ErrorResponseFlyweight.h
│ │ │ ├── Flyweight.h
│ │ │ ├── ImageBuffersReadyFlyweight.h
│ │ │ ├── ImageMessageFlyweight.h
│ │ │ ├── OperationSucceededFlyweight.h
│ │ │ ├── PublicationBuffersReadyFlyweight.h
│ │ │ ├── PublicationMessageFlyweight.h
│ │ │ ├── RemoveMessageFlyweight.h
│ │ │ ├── SubscriptionMessageFlyweight.h
│ │ │ ├── SubscriptionReadyFlyweight.h
│ │ │ └── TerminateDriverFlyweight.h
│ │ ├── concurrent
│ │ │ ├── AgentInvoker.h
│ │ │ ├── AgentRunner.h
│ │ │ ├── Atomic64.h
│ │ │ ├── AtomicArrayUpdater.h
│ │ │ ├── AtomicBuffer.h
│ │ │ ├── AtomicCounter.h
│ │ │ ├── BackOffIdleStrategy.h
│ │ │ ├── BusySpinIdleStrategy.h
│ │ │ ├── CountersManager.h
│ │ │ ├── CountersReader.h
│ │ │ ├── NoOpIdleStrategy.h
│ │ │ ├── SleepingIdleStrategy.h
│ │ │ ├── YieldingIdleStrategy.h
│ │ │ ├── atomic
│ │ │ │ ├── Atomic64_gcc_cpp11.h
│ │ │ │ ├── Atomic64_gcc_x86_64.h
│ │ │ │ └── Atomic64_msvc.h
│ │ │ ├── broadcast
│ │ │ │ ├── BroadcastBufferDescriptor.h
│ │ │ │ ├── BroadcastReceiver.h
│ │ │ │ ├── BroadcastTransmitter.h
│ │ │ │ ├── CopyBroadcastReceiver.h
│ │ │ │ └── RecordDescriptor.h
│ │ │ ├── errors
│ │ │ │ ├── DistinctErrorLog.h
│ │ │ │ ├── ErrorLogDescriptor.h
│ │ │ │ └── ErrorLogReader.h
│ │ │ ├── logbuffer
│ │ │ │ ├── BufferClaim.h
│ │ │ │ ├── DataFrameHeader.h
│ │ │ │ ├── FrameDescriptor.h
│ │ │ │ ├── Header.h
│ │ │ │ ├── HeaderWriter.h
│ │ │ │ ├── LogBufferDescriptor.h
│ │ │ │ ├── TermBlockScanner.h
│ │ │ │ ├── TermGapScanner.h
│ │ │ │ ├── TermReader.h
│ │ │ │ ├── TermRebuilder.h
│ │ │ │ └── TermScanner.h
│ │ │ ├── reports
│ │ │ │ ├── LossReportDescriptor.h
│ │ │ │ └── LossReportReader.h
│ │ │ ├── ringbuffer
│ │ │ │ ├── ManyToOneRingBuffer.h
│ │ │ │ ├── OneToOneRingBuffer.h
│ │ │ │ ├── RecordDescriptor.h
│ │ │ │ └── RingBufferDescriptor.h
│ │ │ └── status
│ │ │ │ ├── LocalSocketAddressStatus.h
│ │ │ │ ├── Position.h
│ │ │ │ ├── ReadablePosition.h
│ │ │ │ ├── StatusIndicatorReader.h
│ │ │ │ └── UnsafeBufferPosition.h
│ │ ├── protocol
│ │ │ ├── DataHeaderFlyweight.h
│ │ │ ├── HeaderFlyweight.h
│ │ │ ├── NakFlyweight.h
│ │ │ ├── SetupFlyweight.h
│ │ │ └── StatusMessageFlyweight.h
│ │ └── util
│ │ │ ├── BitUtil.h
│ │ │ ├── CommandOption.cpp
│ │ │ ├── CommandOption.h
│ │ │ ├── CommandOptionParser.cpp
│ │ │ ├── CommandOptionParser.h
│ │ │ ├── Exceptions.h
│ │ │ ├── Export.h
│ │ │ ├── Index.h
│ │ │ ├── LangUtil.h
│ │ │ ├── MacroUtil.h
│ │ │ ├── MemoryMappedFile.cpp
│ │ │ ├── MemoryMappedFile.h
│ │ │ ├── Platform.h
│ │ │ ├── ScopeUtils.h
│ │ │ └── StringUtil.h
│ ├── cpp_wrapper
│ │ ├── Aeron.h
│ │ ├── AeronCounters.h
│ │ ├── BufferBuilder.h
│ │ ├── CMakeLists.txt
│ │ ├── ChannelUri.h
│ │ ├── ChannelUriStringBuilder.h
│ │ ├── ClientConductor.h
│ │ ├── CncFileDescriptor.h
│ │ ├── CncFileReader.h
│ │ ├── Context.h
│ │ ├── ControlledFragmentAssembler.h
│ │ ├── Counter.h
│ │ ├── ExclusivePublication.h
│ │ ├── FragmentAssembler.h
│ │ ├── HeartbeatTimestamp.h
│ │ ├── Image.h
│ │ ├── ImageControlledFragmentAssembler.h
│ │ ├── ImageFragmentAssembler.h
│ │ ├── Publication.h
│ │ ├── Subscription.h
│ │ ├── concurrent
│ │ │ ├── AgentInvoker.h
│ │ │ ├── AgentRunner.h
│ │ │ ├── Atomic64.h
│ │ │ ├── AtomicBuffer.h
│ │ │ ├── AtomicCounter.h
│ │ │ ├── BackOffIdleStrategy.h
│ │ │ ├── BusySpinIdleStrategy.h
│ │ │ ├── CountersReader.h
│ │ │ ├── NoOpIdleStrategy.h
│ │ │ ├── SleepingIdleStrategy.h
│ │ │ ├── YieldingIdleStrategy.h
│ │ │ ├── atomic
│ │ │ │ ├── Atomic64_gcc_cpp11.h
│ │ │ │ ├── Atomic64_gcc_x86_64.h
│ │ │ │ └── Atomic64_msvc.h
│ │ │ ├── errors
│ │ │ │ ├── ErrorLogDescriptor.h
│ │ │ │ └── ErrorLogReader.h
│ │ │ ├── logbuffer
│ │ │ │ ├── BufferClaim.h
│ │ │ │ ├── DataFrameHeader.h
│ │ │ │ ├── FrameDescriptor.h
│ │ │ │ ├── Header.h
│ │ │ │ ├── LogBufferDescriptor.h
│ │ │ │ └── TermReader.h
│ │ │ └── status
│ │ │ │ ├── Position.h
│ │ │ │ ├── ReadablePosition.h
│ │ │ │ ├── StatusIndicatorReader.h
│ │ │ │ └── UnsafeBufferPosition.h
│ │ ├── status
│ │ │ └── PublicationErrorFrame.h
│ │ └── util
│ │ │ ├── BitUtil.h
│ │ │ ├── CommandOption.h
│ │ │ ├── CommandOptionParser.h
│ │ │ ├── Exceptions.h
│ │ │ ├── Index.h
│ │ │ ├── LangUtil.h
│ │ │ ├── MacroUtil.h
│ │ │ ├── MemoryMappedFile.h
│ │ │ ├── Platform.h
│ │ │ ├── ScopeUtils.h
│ │ │ └── StringUtil.h
│ └── java
│ │ └── io
│ │ └── aeron
│ │ ├── Aeron.java
│ │ ├── AeronCounters.java
│ │ ├── AvailableCounterHandler.java
│ │ ├── AvailableImageHandler.java
│ │ ├── BufferBuilder.java
│ │ ├── ChannelUri.java
│ │ ├── ChannelUriStringBuilder.java
│ │ ├── ClientConductor.java
│ │ ├── CncFileDescriptor.java
│ │ ├── CommonContext.java
│ │ ├── ConcurrentPublication.java
│ │ ├── ControlledFragmentAssembler.java
│ │ ├── Counter.java
│ │ ├── CounterProvider.java
│ │ ├── DirectBufferVector.java
│ │ ├── DriverEventsAdapter.java
│ │ ├── DriverProxy.java
│ │ ├── ErrorCode.java
│ │ ├── ExclusivePublication.java
│ │ ├── FragmentAssembler.java
│ │ ├── Image.java
│ │ ├── ImageControlledFragmentAssembler.java
│ │ ├── ImageFragmentAssembler.java
│ │ ├── LogBuffers.java
│ │ ├── LogBuffersFactory.java
│ │ ├── MappedLogBuffersFactory.java
│ │ ├── Publication.java
│ │ ├── PublicationErrorFrameHandler.java
│ │ ├── ReservedValueSupplier.java
│ │ ├── RethrowingErrorHandler.java
│ │ ├── Subscription.java
│ │ ├── UnavailableCounterHandler.java
│ │ ├── UnavailableImageHandler.java
│ │ ├── command
│ │ ├── ClientTimeoutFlyweight.java
│ │ ├── ControlProtocolEvents.java
│ │ ├── CorrelatedMessageFlyweight.java
│ │ ├── CounterMessageFlyweight.java
│ │ ├── CounterUpdateFlyweight.java
│ │ ├── DestinationByIdMessageFlyweight.java
│ │ ├── DestinationMessageFlyweight.java
│ │ ├── ErrorResponseFlyweight.java
│ │ ├── ImageBuffersReadyFlyweight.java
│ │ ├── ImageMessageFlyweight.java
│ │ ├── OperationSucceededFlyweight.java
│ │ ├── PublicationBuffersReadyFlyweight.java
│ │ ├── PublicationErrorFrameFlyweight.java
│ │ ├── PublicationMessageFlyweight.java
│ │ ├── RejectImageFlyweight.java
│ │ ├── RemoveCounterFlyweight.java
│ │ ├── RemoveMessageFlyweight.java
│ │ ├── RemovePublicationFlyweight.java
│ │ ├── RemoveSubscriptionFlyweight.java
│ │ ├── StaticCounterFlyweight.java
│ │ ├── StaticCounterMessageFlyweight.java
│ │ ├── SubscriptionMessageFlyweight.java
│ │ ├── SubscriptionReadyFlyweight.java
│ │ ├── TerminateDriverFlyweight.java
│ │ └── package-info.java
│ │ ├── exceptions
│ │ ├── AeronEvent.java
│ │ ├── AeronException.java
│ │ ├── ChannelEndpointException.java
│ │ ├── ClientTimeoutException.java
│ │ ├── ConcurrentConcludeException.java
│ │ ├── ConductorServiceTimeoutException.java
│ │ ├── ConfigurationException.java
│ │ ├── ControlProtocolException.java
│ │ ├── DriverTimeoutException.java
│ │ ├── RegistrationException.java
│ │ ├── StorageSpaceException.java
│ │ ├── TimeoutException.java
│ │ └── package-info.java
│ │ ├── logbuffer
│ │ ├── BlockHandler.java
│ │ ├── BufferClaim.java
│ │ ├── ControlledFragmentHandler.java
│ │ ├── FragmentHandler.java
│ │ ├── FrameDescriptor.java
│ │ ├── Header.java
│ │ ├── HeaderWriter.java
│ │ ├── LogBufferDescriptor.java
│ │ ├── LogBufferUnblocker.java
│ │ ├── RawBlockHandler.java
│ │ ├── TermBlockScanner.java
│ │ ├── TermGapFiller.java
│ │ ├── TermGapScanner.java
│ │ ├── TermReader.java
│ │ ├── TermRebuilder.java
│ │ ├── TermScanner.java
│ │ ├── TermUnblocker.java
│ │ └── package-info.java
│ │ ├── package-info.java
│ │ ├── protocol
│ │ ├── DataHeaderFlyweight.java
│ │ ├── ErrorFlyweight.java
│ │ ├── HeaderFlyweight.java
│ │ ├── NakFlyweight.java
│ │ ├── ResolutionEntryFlyweight.java
│ │ ├── ResponseSetupFlyweight.java
│ │ ├── RttMeasurementFlyweight.java
│ │ ├── SetupFlyweight.java
│ │ ├── StatusMessageFlyweight.java
│ │ └── package-info.java
│ │ ├── security
│ │ ├── AuthenticationException.java
│ │ ├── Authenticator.java
│ │ ├── AuthenticatorSupplier.java
│ │ ├── AuthorisationService.java
│ │ ├── AuthorisationServiceSupplier.java
│ │ ├── CredentialsSupplier.java
│ │ ├── DefaultAuthenticatorSupplier.java
│ │ ├── NullCredentialsSupplier.java
│ │ ├── SessionProxy.java
│ │ ├── SimpleAuthenticator.java
│ │ ├── SimpleAuthorisationService.java
│ │ └── package-info.java
│ │ └── status
│ │ ├── ChannelEndpointStatus.java
│ │ ├── HeartbeatTimestamp.java
│ │ ├── LocalSocketAddressStatus.java
│ │ ├── PublicationErrorFrame.java
│ │ ├── ReadableCounter.java
│ │ └── package-info.java
│ └── test
│ ├── c
│ ├── CMakeLists.txt
│ ├── aeron_client_conductor_test.cpp
│ ├── aeron_client_test_utils.h
│ ├── aeron_controlled_fragment_assembler_test.cpp
│ ├── aeron_controlled_image_fragment_assembler_test.cpp
│ ├── aeron_fragment_assembler_test.cpp
│ ├── aeron_image_fragment_assembler_test.cpp
│ ├── aeron_image_test.cpp
│ ├── aeron_publication_test.cpp
│ ├── aeron_subscription_test.cpp
│ ├── aeron_uri_test.cpp
│ ├── aeron_version_test.cpp
│ ├── collections
│ │ ├── aeron_array_to_ptr_hash_map_test.cpp
│ │ ├── aeron_bit_set_test.cpp
│ │ ├── aeron_int64_counter_map_test.cpp
│ │ ├── aeron_int64_to_ptr_hash_map_test.cpp
│ │ ├── aeron_int64_to_tagged_ptr_hash_map_test.cpp
│ │ ├── aeron_linked_queue_test.cpp
│ │ └── aeron_str_to_ptr_hash_map_test.cpp
│ ├── concurrent
│ │ ├── aeron_atomic_test.cpp
│ │ ├── aeron_blocking_linked_queue_test.cpp
│ │ ├── aeron_broadcast_receiver_test.cpp
│ │ ├── aeron_broadcast_transmitter_test.cpp
│ │ ├── aeron_counters_test.cpp
│ │ ├── aeron_distinct_error_log_test.cpp
│ │ ├── aeron_executor_test.cpp
│ │ ├── aeron_mpsc_concurrent_array_queue_test.cpp
│ │ ├── aeron_mpsc_rb_test.cpp
│ │ ├── aeron_spsc_concurrent_array_queue_test.cpp
│ │ └── aeron_spsc_rb_test.cpp
│ └── util
│ │ ├── aeron_bitutil_test.cpp
│ │ ├── aeron_deque_test.cpp
│ │ ├── aeron_error_test.cpp
│ │ ├── aeron_fileutil_test.cpp
│ │ ├── aeron_httputil_test.cpp
│ │ ├── aeron_math_test.cpp
│ │ ├── aeron_netutil_test.cpp
│ │ ├── aeron_strutil_test.cpp
│ │ └── aeron_symbol_table_test.cpp
│ ├── cpp
│ ├── BufferBuilderTest.cpp
│ ├── CMakeLists.txt
│ ├── ChannelUriStringBuilderTest.cpp
│ ├── ChannelUriTest.cpp
│ ├── ClientConductorFixture.cpp
│ ├── ClientConductorFixture.h
│ ├── ClientConductorTest.cpp
│ ├── ControlledFragmentAssemblerTest.cpp
│ ├── ExclusivePublicationTest.cpp
│ ├── FragmentAssemblerTest.cpp
│ ├── ImageControlledFragmentAssemblerTest.cpp
│ ├── ImageFragmentAssemblerTest.cpp
│ ├── ImageTest.cpp
│ ├── PublicationTest.cpp
│ ├── SystemTest.cpp
│ ├── command
│ │ └── CommandTest.cpp
│ ├── concurrent
│ │ ├── AtomicArrayUpdaterTest.cpp
│ │ ├── BroadcastReceiverTest.cpp
│ │ ├── BroadcastTransmitterTest.cpp
│ │ ├── ConcurrentTest.cpp
│ │ ├── CountersManagerTest.cpp
│ │ ├── DistinctErrorLogTest.cpp
│ │ ├── ErrorLogReaderTest.cpp
│ │ ├── ManyToOneRingBufferTest.cpp
│ │ ├── MockAtomicBuffer.cpp
│ │ ├── MockAtomicBuffer.h
│ │ ├── OneToOneRingBufferTest.cpp
│ │ ├── TermBlockScannerTest.cpp
│ │ ├── TermGapScannerTest.cpp
│ │ ├── TermReaderTest.cpp
│ │ └── TermScannerTest.cpp
│ └── util
│ │ ├── MemoryMappedFileTest.cpp
│ │ ├── TestUtils.h
│ │ └── UtilTest.cpp
│ ├── cpp_shared
│ ├── ControlledFragmentAssemblerTestFixture.h
│ ├── EmbeddedMediaDriver.h
│ ├── FragmentAssemblerTestFixture.h
│ ├── ImageControlledFragmentAssemblerTestFixture.h
│ └── ImageFragmentAssemblerTestFixture.h
│ ├── cpp_wrapper
│ ├── CMakeLists.txt
│ ├── ChannelUriStringBuilderTest.cpp
│ ├── ControlledFragmentAssemblerTest.cpp
│ ├── CountersTest.cpp
│ ├── ExceptionsTest.cpp
│ ├── FragmentAssemblerTest.cpp
│ ├── ImageControlledFragmentAssemblerTest.cpp
│ ├── ImageFragmentAssemblerTest.cpp
│ ├── ImageTest.cpp
│ ├── LivenessTimeoutTest.cpp
│ ├── LocalAddressesTest.cpp
│ ├── MultiDestinationByIdTest.cpp
│ ├── MultiDestinationTest.cpp
│ ├── PubSubTest.cpp
│ ├── PublicationRevokeTest.cpp
│ ├── RejectImageTest.cpp
│ ├── ResponseChannelsTest.cpp
│ ├── SystemTest.cpp
│ ├── TestUtil.h
│ └── WrapperSystemTest.cpp
│ └── java
│ └── io
│ └── aeron
│ ├── AeronContextTest.java
│ ├── AeronCountersTest.java
│ ├── BufferBuilderTest.java
│ ├── ChannelUriStringBuilderTest.java
│ ├── ChannelUriTest.java
│ ├── ClientConductorTest.java
│ ├── CommonContextTest.java
│ ├── DriverProxyTest.java
│ ├── FlyweightTest.java
│ ├── FragmentAssemblerTest.java
│ ├── ImageTest.java
│ ├── LogBuffersTest.java
│ ├── PublicationTest.java
│ ├── SubscriptionTest.java
│ ├── TimestampUtilTest.java
│ ├── VerifyBuildTimePropertiesTest.java
│ ├── command
│ ├── CounterMessageFlyweightTest.java
│ └── TerminateDriverFlyweightTest.java
│ ├── exceptions
│ └── StorageSpaceExceptionTest.java
│ ├── logbuffer
│ ├── HeaderTest.java
│ ├── HeaderWriterTest.java
│ ├── LogBufferDescriptorTest.java
│ ├── LogBufferUnblockerTest.java
│ ├── TermBlockScannerTest.java
│ ├── TermGapFillerTest.java
│ ├── TermGapScannerTest.java
│ ├── TermReaderTest.java
│ ├── TermRebuilderTest.java
│ ├── TermScannerTest.java
│ └── TermUnblockerTest.java
│ ├── protocol
│ ├── ErrorFlyweightTest.java
│ └── HeaderFlyweightTest.java
│ └── security
│ └── AuthorisationServiceTest.java
├── aeron-cluster
├── README.md
└── src
│ ├── main
│ ├── java
│ │ └── io
│ │ │ └── aeron
│ │ │ └── cluster
│ │ │ ├── AppVersionValidator.java
│ │ │ ├── ClusterBackup.java
│ │ │ ├── ClusterBackupAgent.java
│ │ │ ├── ClusterBackupEventsListener.java
│ │ │ ├── ClusterBackupMediaDriver.java
│ │ │ ├── ClusterClientSession.java
│ │ │ ├── ClusterControl.java
│ │ │ ├── ClusterControlAdapter.java
│ │ │ ├── ClusterMember.java
│ │ │ ├── ClusterMembership.java
│ │ │ ├── ClusterSession.java
│ │ │ ├── ClusterSessionProxy.java
│ │ │ ├── ClusterTermination.java
│ │ │ ├── ClusterTool.java
│ │ │ ├── ClusterToolCommand.java
│ │ │ ├── ClusterToolOperator.java
│ │ │ ├── ClusteredArchive.java
│ │ │ ├── ClusteredMediaDriver.java
│ │ │ ├── ConsensusAdapter.java
│ │ │ ├── ConsensusControlState.java
│ │ │ ├── ConsensusModule.java
│ │ │ ├── ConsensusModuleAdapter.java
│ │ │ ├── ConsensusModuleAgent.java
│ │ │ ├── ConsensusModuleControl.java
│ │ │ ├── ConsensusModuleExtension.java
│ │ │ ├── ConsensusModuleSnapshotAdapter.java
│ │ │ ├── ConsensusModuleSnapshotListener.java
│ │ │ ├── ConsensusModuleSnapshotPrinter.java
│ │ │ ├── ConsensusModuleSnapshotTaker.java
│ │ │ ├── ConsensusModuleStateExport.java
│ │ │ ├── ConsensusPublisher.java
│ │ │ ├── EgressPublisher.java
│ │ │ ├── Election.java
│ │ │ ├── ElectionState.java
│ │ │ ├── IngressAdapter.java
│ │ │ ├── LogAdapter.java
│ │ │ ├── LogPublisher.java
│ │ │ ├── LogReplay.java
│ │ │ ├── LogSourceValidator.java
│ │ │ ├── MillisecondClusterClock.java
│ │ │ ├── MultipleRecordingReplication.java
│ │ │ ├── NanosecondClusterClock.java
│ │ │ ├── NodeControl.java
│ │ │ ├── NodeStateFile.java
│ │ │ ├── PendingServiceMessageTracker.java
│ │ │ ├── PriorityHeapTimerService.java
│ │ │ ├── PriorityHeapTimerServiceSupplier.java
│ │ │ ├── PublicationGroup.java
│ │ │ ├── RecordingExtent.java
│ │ │ ├── RecordingLog.java
│ │ │ ├── RecordingReplication.java
│ │ │ ├── ServiceAck.java
│ │ │ ├── ServiceProxy.java
│ │ │ ├── SnapshotReplication.java
│ │ │ ├── StandbySnapshotEntry.java
│ │ │ ├── StandbySnapshotReplicator.java
│ │ │ ├── TimerService.java
│ │ │ ├── TimerServiceSupplier.java
│ │ │ ├── ToggleApplication.java
│ │ │ ├── WheelTimerService.java
│ │ │ ├── WheelTimerServiceSupplier.java
│ │ │ ├── client
│ │ │ ├── AeronCluster.java
│ │ │ ├── ClusterEvent.java
│ │ │ ├── ClusterException.java
│ │ │ ├── ControlledEgressAdapter.java
│ │ │ ├── ControlledEgressListener.java
│ │ │ ├── ControlledEgressListenerExtension.java
│ │ │ ├── EgressAdapter.java
│ │ │ ├── EgressListener.java
│ │ │ ├── EgressListenerExtension.java
│ │ │ ├── EgressPoller.java
│ │ │ ├── IngressSessionDecorator.java
│ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── service
│ │ │ ├── ActiveLogEvent.java
│ │ │ ├── BoundedLogAdapter.java
│ │ │ ├── ClientSession.java
│ │ │ ├── Cluster.java
│ │ │ ├── ClusterClock.java
│ │ │ ├── ClusterCounters.java
│ │ │ ├── ClusterMarkFile.java
│ │ │ ├── ClusterNodeControlProperties.java
│ │ │ ├── ClusterTerminationException.java
│ │ │ ├── ClusteredService.java
│ │ │ ├── ClusteredServiceAgent.java
│ │ │ ├── ClusteredServiceContainer.java
│ │ │ ├── ConsensusModuleProxy.java
│ │ │ ├── ContainerClientSession.java
│ │ │ ├── RecoveryState.java
│ │ │ ├── ServiceAdapter.java
│ │ │ ├── ServiceSnapshotLoader.java
│ │ │ ├── ServiceSnapshotTaker.java
│ │ │ ├── SnapshotDurationTracker.java
│ │ │ ├── SnapshotTaker.java
│ │ │ └── package-info.java
│ └── resources
│ │ └── cluster
│ │ ├── aeron-cluster-codecs.xml
│ │ ├── aeron-cluster-mark-codecs.xml
│ │ ├── aeron-cluster-node-state-codecs.xml
│ │ └── fpl
│ │ └── sbe.xsd
│ └── test
│ ├── java
│ └── io
│ │ └── aeron
│ │ └── cluster
│ │ ├── AuthenticationTest.java
│ │ ├── ClusterBackupAgentTest.java
│ │ ├── ClusterBackupContextTest.java
│ │ ├── ClusterMemberTest.java
│ │ ├── ClusterNodeRestartTest.java
│ │ ├── ClusterNodeTest.java
│ │ ├── ClusterTestConstants.java
│ │ ├── ClusterTimerTest.java
│ │ ├── ClusterWithNoServicesTest.java
│ │ ├── ConsensusModuleAgentTest.java
│ │ ├── ConsensusModuleContextCloseTests.java
│ │ ├── ConsensusModuleContextTest.java
│ │ ├── ConsensusModuleSnapshotTakerTest.java
│ │ ├── ElectionTest.java
│ │ ├── IngressAdapterTest.java
│ │ ├── LogSourceValidatorTest.java
│ │ ├── NameResolutionClusterNodeTest.java
│ │ ├── NodeStateFileTest.java
│ │ ├── PendingServiceMessageTrackerTest.java
│ │ ├── PriorityHeapTimerServiceClusterTimeTest.java
│ │ ├── PriorityHeapTimerServiceTest.java
│ │ ├── PublicationGroupTest.java
│ │ ├── RecordingLogTest.java
│ │ ├── RecordingReplicationTest.java
│ │ ├── SessionEventCodecCompatibilityTest.java
│ │ ├── SnapshotReplicationTest.java
│ │ ├── StandbySnapshotReplicatorTest.java
│ │ ├── WheelTimerServiceClusterTimeTest.java
│ │ ├── client
│ │ ├── AeronClusterAsyncConnectTest.java
│ │ ├── AeronClusterContextTest.java
│ │ ├── AeronClusterTest.java
│ │ └── EgressAdapterTest.java
│ │ └── service
│ │ ├── ClusterMarkFileTest.java
│ │ ├── ClusteredServiceAgentTest.java
│ │ ├── ClusteredServiceContainerContextTest.java
│ │ └── ServiceSnapshotTakerTest.java
│ └── resources
│ ├── aeron-cluster-mark-codecs-v0.xml
│ └── v1_42_x
│ └── node-state.dat
├── aeron-config.cmake.in
├── aeron-driver
├── README.md
└── src
│ ├── main
│ ├── c
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── aeron_congestion_control.c
│ │ ├── aeron_congestion_control.h
│ │ ├── aeron_csv_table_name_resolver.c
│ │ ├── aeron_csv_table_name_resolver.h
│ │ ├── aeron_data_packet_dispatcher.c
│ │ ├── aeron_data_packet_dispatcher.h
│ │ ├── aeron_driver.c
│ │ ├── aeron_driver.h
│ │ ├── aeron_driver_common.h
│ │ ├── aeron_driver_conductor.c
│ │ ├── aeron_driver_conductor.h
│ │ ├── aeron_driver_conductor_proxy.c
│ │ ├── aeron_driver_conductor_proxy.h
│ │ ├── aeron_driver_context.c
│ │ ├── aeron_driver_context.h
│ │ ├── aeron_driver_name_resolver.c
│ │ ├── aeron_driver_name_resolver.h
│ │ ├── aeron_driver_receiver.c
│ │ ├── aeron_driver_receiver.h
│ │ ├── aeron_driver_receiver_proxy.c
│ │ ├── aeron_driver_receiver_proxy.h
│ │ ├── aeron_driver_sender.c
│ │ ├── aeron_driver_sender.h
│ │ ├── aeron_driver_sender_proxy.c
│ │ ├── aeron_driver_sender_proxy.h
│ │ ├── aeron_driver_version.c
│ │ ├── aeron_driver_version.h
│ │ ├── aeron_duty_cycle_tracker.h
│ │ ├── aeron_flow_control.c
│ │ ├── aeron_flow_control.h
│ │ ├── aeron_ipc_publication.c
│ │ ├── aeron_ipc_publication.h
│ │ ├── aeron_loss_detector.c
│ │ ├── aeron_loss_detector.h
│ │ ├── aeron_min_flow_control.c
│ │ ├── aeron_name_resolver.c
│ │ ├── aeron_name_resolver.h
│ │ ├── aeron_name_resolver_cache.c
│ │ ├── aeron_name_resolver_cache.h
│ │ ├── aeron_network_publication.c
│ │ ├── aeron_network_publication.h
│ │ ├── aeron_port_manager.c
│ │ ├── aeron_port_manager.h
│ │ ├── aeron_position.c
│ │ ├── aeron_position.h
│ │ ├── aeron_publication_image.c
│ │ ├── aeron_publication_image.h
│ │ ├── aeron_retransmit_handler.c
│ │ ├── aeron_retransmit_handler.h
│ │ ├── aeron_system_counters.c
│ │ ├── aeron_system_counters.h
│ │ ├── aeron_termination_validator.c
│ │ ├── aeron_termination_validator.h
│ │ ├── aeronmd.c
│ │ ├── aeronmd.h
│ │ ├── agent
│ │ │ ├── aeron_driver_agent.c
│ │ │ └── aeron_driver_agent.h
│ │ ├── concurrent
│ │ │ ├── aeron_logbuffer_unblocker.c
│ │ │ └── aeron_logbuffer_unblocker.h
│ │ ├── media
│ │ │ ├── aeron_receive_channel_endpoint.c
│ │ │ ├── aeron_receive_channel_endpoint.h
│ │ │ ├── aeron_receive_destination.c
│ │ │ ├── aeron_receive_destination.h
│ │ │ ├── aeron_send_channel_endpoint.c
│ │ │ ├── aeron_send_channel_endpoint.h
│ │ │ ├── aeron_timestamps.c
│ │ │ ├── aeron_timestamps.h
│ │ │ ├── aeron_udp_channel.c
│ │ │ ├── aeron_udp_channel.h
│ │ │ ├── aeron_udp_channel_transport.c
│ │ │ ├── aeron_udp_channel_transport.h
│ │ │ ├── aeron_udp_channel_transport_bindings.c
│ │ │ ├── aeron_udp_channel_transport_bindings.h
│ │ │ ├── aeron_udp_channel_transport_fixed_loss.c
│ │ │ ├── aeron_udp_channel_transport_fixed_loss.h
│ │ │ ├── aeron_udp_channel_transport_loss.c
│ │ │ ├── aeron_udp_channel_transport_loss.h
│ │ │ ├── aeron_udp_channel_transport_multi_gap_loss.c
│ │ │ ├── aeron_udp_channel_transport_multi_gap_loss.h
│ │ │ ├── aeron_udp_destination_tracker.c
│ │ │ ├── aeron_udp_destination_tracker.h
│ │ │ ├── aeron_udp_transport_poller.c
│ │ │ └── aeron_udp_transport_poller.h
│ │ └── uri
│ │ │ ├── aeron_driver_uri.c
│ │ │ └── aeron_driver_uri.h
│ ├── java
│ │ └── io
│ │ │ └── aeron
│ │ │ └── driver
│ │ │ ├── AbstractMinMulticastFlowControl.java
│ │ │ ├── AeronClient.java
│ │ │ ├── ClientCommandAdapter.java
│ │ │ ├── ClientProxy.java
│ │ │ ├── CommandProxy.java
│ │ │ ├── Configuration.java
│ │ │ ├── CongestionControl.java
│ │ │ ├── CongestionControlSupplier.java
│ │ │ ├── CounterLink.java
│ │ │ ├── DataPacketDispatcher.java
│ │ │ ├── DefaultAllowTerminationValidator.java
│ │ │ ├── DefaultCongestionControlSupplier.java
│ │ │ ├── DefaultDenyTerminationValidator.java
│ │ │ ├── DefaultMulticastFlowControlSupplier.java
│ │ │ ├── DefaultNameResolver.java
│ │ │ ├── DefaultReceiveChannelEndpointSupplier.java
│ │ │ ├── DefaultSendChannelEndpointSupplier.java
│ │ │ ├── DefaultUnicastFlowControlSupplier.java
│ │ │ ├── DriverConductor.java
│ │ │ ├── DriverConductorProxy.java
│ │ │ ├── DriverManagedResource.java
│ │ │ ├── DriverNameResolver.java
│ │ │ ├── DriverNameResolverCache.java
│ │ │ ├── DutyCycleTracker.java
│ │ │ ├── FeedbackDelayGenerator.java
│ │ │ ├── FlowControl.java
│ │ │ ├── FlowControlSupplier.java
│ │ │ ├── IpcPublication.java
│ │ │ ├── IpcSubscriptionLink.java
│ │ │ ├── LossDetector.java
│ │ │ ├── LossHandler.java
│ │ │ ├── MaxMulticastFlowControl.java
│ │ │ ├── MaxMulticastFlowControlSupplier.java
│ │ │ ├── MediaDriver.java
│ │ │ ├── MinMulticastFlowControl.java
│ │ │ ├── MinMulticastFlowControlSupplier.java
│ │ │ ├── NameResolver.java
│ │ │ ├── NamedCompositeAgent.java
│ │ │ ├── NetworkPublication.java
│ │ │ ├── NetworkPublicationThreadLocals.java
│ │ │ ├── NetworkSubscriptionLink.java
│ │ │ ├── OptimalMulticastDelayGenerator.java
│ │ │ ├── PendingSetupMessageFromSource.java
│ │ │ ├── PreferredMulticastFlowControl.java
│ │ │ ├── PreferredMulticastFlowControlSupplier.java
│ │ │ ├── PublicationImage.java
│ │ │ ├── PublicationLink.java
│ │ │ ├── PublicationParams.java
│ │ │ ├── ReceiveChannelEndpointSupplier.java
│ │ │ ├── Receiver.java
│ │ │ ├── ReceiverLivenessTracker.java
│ │ │ ├── ReceiverProxy.java
│ │ │ ├── RetransmitHandler.java
│ │ │ ├── RetransmitSender.java
│ │ │ ├── SendChannelEndpointSupplier.java
│ │ │ ├── Sender.java
│ │ │ ├── SenderProxy.java
│ │ │ ├── SessionKey.java
│ │ │ ├── SpySubscriptionLink.java
│ │ │ ├── StaticDelayGenerator.java
│ │ │ ├── StaticWindowCongestionControl.java
│ │ │ ├── Subscribable.java
│ │ │ ├── SubscriberPosition.java
│ │ │ ├── SubscriptionLink.java
│ │ │ ├── SubscriptionParams.java
│ │ │ ├── TaggedMulticastFlowControl.java
│ │ │ ├── TaggedMulticastFlowControlSupplier.java
│ │ │ ├── TerminationValidator.java
│ │ │ ├── ThreadingMode.java
│ │ │ ├── TimeTrackingNameResolver.java
│ │ │ ├── UnicastFlowControl.java
│ │ │ ├── UntetheredSubscription.java
│ │ │ ├── buffer
│ │ │ ├── FileStoreLogFactory.java
│ │ │ ├── LogFactory.java
│ │ │ ├── MappedRawLog.java
│ │ │ ├── RawLog.java
│ │ │ └── package-info.java
│ │ │ ├── exceptions
│ │ │ ├── ActiveDriverException.java
│ │ │ ├── InvalidChannelException.java
│ │ │ ├── UnknownSubscriptionException.java
│ │ │ └── package-info.java
│ │ │ ├── ext
│ │ │ ├── CubicCongestionControl.java
│ │ │ ├── CubicCongestionControlConfiguration.java
│ │ │ ├── CubicCongestionControlSupplier.java
│ │ │ ├── DebugChannelEndpointConfiguration.java
│ │ │ ├── DebugReceiveChannelEndpoint.java
│ │ │ ├── DebugReceiveChannelEndpointSupplier.java
│ │ │ ├── DebugSendChannelEndpoint.java
│ │ │ ├── DebugSendChannelEndpointSupplier.java
│ │ │ ├── FixedLossGenerator.java
│ │ │ ├── LossGenerator.java
│ │ │ ├── MultiGapLossGenerator.java
│ │ │ ├── RandomLossGenerator.java
│ │ │ └── package-info.java
│ │ │ ├── media
│ │ │ ├── ControlMode.java
│ │ │ ├── ControlTransportPoller.java
│ │ │ ├── DataTransportPoller.java
│ │ │ ├── ImageConnection.java
│ │ │ ├── InterfaceSearchAddress.java
│ │ │ ├── MultiRcvDestination.java
│ │ │ ├── NetworkInterfaceShim.java
│ │ │ ├── NetworkUtil.java
│ │ │ ├── PortManager.java
│ │ │ ├── ReceiveChannelEndpoint.java
│ │ │ ├── ReceiveChannelEndpointThreadLocals.java
│ │ │ ├── ReceiveDestinationTransport.java
│ │ │ ├── SendChannelEndpoint.java
│ │ │ ├── SocketAddressParser.java
│ │ │ ├── UdpChannel.java
│ │ │ ├── UdpChannelTransport.java
│ │ │ ├── UdpNameResolutionTransport.java
│ │ │ ├── UdpTransportPoller.java
│ │ │ ├── WildcardPortManager.java
│ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── reports
│ │ │ ├── LossReport.java
│ │ │ ├── LossReportReader.java
│ │ │ ├── LossReportUtil.java
│ │ │ └── package-info.java
│ │ │ └── status
│ │ │ ├── ClientHeartbeatTimestamp.java
│ │ │ ├── DutyCycleStallTracker.java
│ │ │ ├── FlowControlReceivers.java
│ │ │ ├── MdcDestinations.java
│ │ │ ├── PerImageIndicator.java
│ │ │ ├── PublisherLimit.java
│ │ │ ├── PublisherPos.java
│ │ │ ├── ReceiveChannelStatus.java
│ │ │ ├── ReceiveLocalSocketAddress.java
│ │ │ ├── ReceiverHwm.java
│ │ │ ├── ReceiverNaksSent.java
│ │ │ ├── ReceiverPos.java
│ │ │ ├── SendChannelStatus.java
│ │ │ ├── SendLocalSocketAddress.java
│ │ │ ├── SenderBpe.java
│ │ │ ├── SenderLimit.java
│ │ │ ├── SenderNaksReceived.java
│ │ │ ├── SenderPos.java
│ │ │ ├── StatusUtil.java
│ │ │ ├── StreamCounter.java
│ │ │ ├── SubscriberPos.java
│ │ │ ├── SystemCounterDescriptor.java
│ │ │ ├── SystemCounters.java
│ │ │ └── package-info.java
│ └── resources
│ │ ├── aeron-ipc.properties
│ │ ├── aeron-throughput.properties
│ │ ├── debug-loss-10.properties
│ │ ├── high-stream-count.properties
│ │ └── low-latency.properties
│ └── test
│ ├── c
│ ├── CMakeLists.txt
│ ├── EmbeddedMediaDriver.h
│ ├── aeron_c_cnc_test.cpp
│ ├── aeron_c_local_addresses_test.cpp
│ ├── aeron_c_multi_destination_test.cpp
│ ├── aeron_c_system_test.cpp
│ ├── aeron_c_terminate_test.cpp
│ ├── aeron_congestion_control_test.cpp
│ ├── aeron_counters_manager_test.cpp
│ ├── aeron_data_packet_dispatcher_test.cpp
│ ├── aeron_driver_conductor_clock_test.cpp
│ ├── aeron_driver_conductor_config_test.cpp
│ ├── aeron_driver_conductor_counter_test.cpp
│ ├── aeron_driver_conductor_ipc_test.cpp
│ ├── aeron_driver_conductor_network_test.cpp
│ ├── aeron_driver_conductor_pub_sub_test.cpp
│ ├── aeron_driver_conductor_spy_test.cpp
│ ├── aeron_driver_conductor_subscribable_test.cpp
│ ├── aeron_driver_conductor_test.h
│ ├── aeron_driver_configuration_test.cpp
│ ├── aeron_driver_context_config_test.cpp
│ ├── aeron_driver_uri_test.cpp
│ ├── aeron_errors_test.cpp
│ ├── aeron_flow_control_test.cpp
│ ├── aeron_ipc_publication_test.cpp
│ ├── aeron_logbuffer_unblocker_test.cpp
│ ├── aeron_loss_detector_test.cpp
│ ├── aeron_loss_reporter_test.cpp
│ ├── aeron_name_resolver_cache_test.cpp
│ ├── aeron_name_resolver_test.cpp
│ ├── aeron_network_publication_test.cpp
│ ├── aeron_parse_util_test.cpp
│ ├── aeron_port_manager_test.cpp
│ ├── aeron_position_test.cpp
│ ├── aeron_properties_test.cpp
│ ├── aeron_publication_image_test.cpp
│ ├── aeron_receiver_test.h
│ ├── aeron_retransmit_handler_test.cpp
│ ├── aeron_term_gap_filler_test.cpp
│ ├── aeron_term_scanner_test.cpp
│ ├── aeron_test_base.h
│ ├── aeron_test_udp_bindings.h
│ ├── aeron_timestamps_test.cpp
│ ├── aeron_udp_channel_test.cpp
│ ├── aeronmd_signal_test.cpp
│ ├── agent
│ │ └── aeron_driver_agent_test.cpp
│ └── media
│ │ ├── aeron_udp_channel_transport_loss_test.cpp
│ │ └── aeron_udp_channel_transport_multi_gap_loss_test.cpp
│ └── java
│ └── io
│ └── aeron
│ └── driver
│ ├── ClientCommandAdapterTest.java
│ ├── ConfigurationTest.java
│ ├── DataPacketDispatcherTest.java
│ ├── DefaultMulticastFlowControlSupplierTest.java
│ ├── DefaultNameResolverTest.java
│ ├── DriverConductorTest.java
│ ├── FlowControlTest.java
│ ├── IpcPublicationTest.java
│ ├── LossDetectorTest.java
│ ├── MediaDriverContextTest.java
│ ├── MediaDriverTest.java
│ ├── MinMulticastFlowControlTest.java
│ ├── NetworkPublicationTest.java
│ ├── OptimalMulticastDelayGeneratorTest.java
│ ├── PublicationImageTest.java
│ ├── PublicationParamsTest.java
│ ├── ReceiverLivenessTrackerTest.java
│ ├── ReceiverTest.java
│ ├── RetransmitHandlerTest.java
│ ├── SelectorAndTransportTest.java
│ ├── SenderTest.java
│ ├── StaticWindowCongestionControlTest.java
│ ├── TaggedMulticastFlowControlTest.java
│ ├── TerminateDriverTest.java
│ ├── TimeTrackingNameResolverTest.java
│ ├── UdpChannelTest.java
│ ├── UntetheredSubscriptionTest.java
│ ├── buffer
│ ├── FileStoreLogFactoryTest.java
│ └── TestLogFactory.java
│ ├── ext
│ ├── CubicCongestionControlTest.java
│ ├── FixedLossGeneratorTest.java
│ └── MultiGapLossGeneratorTest.java
│ ├── media
│ ├── NetworkUtilTest.java
│ ├── SocketAddressParserTest.java
│ └── WildcardPortManagerTest.java
│ ├── reports
│ ├── LossReportReaderTest.java
│ └── LossReportTest.java
│ └── status
│ └── DutyCycleStallTrackerTest.java
├── aeron-samples
├── README.md
├── scripts
│ ├── aeron-stat
│ ├── aeron-stat.cmd
│ ├── archive
│ │ ├── README.md
│ │ ├── archiving-media-driver
│ │ ├── archiving-media-driver.cmd
│ │ ├── embedded-recording-throughput
│ │ ├── embedded-recording-throughput.cmd
│ │ ├── embedded-replay-throughput
│ │ ├── embedded-replay-throughput.cmd
│ │ ├── high-throughput-archive.properties
│ │ ├── lightweight-archive.properties
│ │ ├── logging-archiving-media-driver
│ │ ├── logging-archiving-media-driver.cmd
│ │ ├── recorded-basic-publisher
│ │ ├── recorded-basic-publisher.cmd
│ │ ├── recording-replicator
│ │ ├── recording-replicator.cmd
│ │ ├── replayed-basic-subscriber
│ │ ├── replayed-basic-subscriber.cmd
│ │ ├── segment-inspector
│ │ ├── segment-inspector.cmd
│ │ └── standard-archive.properties
│ ├── backlog-stat
│ ├── backlog-stat.cmd
│ ├── basic-publisher
│ ├── basic-publisher.cmd
│ ├── basic-subscriber
│ ├── basic-subscriber.cmd
│ ├── cluster
│ │ ├── agent-ns
│ │ ├── basic-auction-client
│ │ ├── basic-auction-client-ns
│ │ ├── basic-auction-cluster
│ │ ├── basic-auction-cluster-ns
│ │ ├── remove-namespaces
│ │ ├── script-common
│ │ └── setup-namespaces
│ ├── dynamic-logging
│ ├── dynamic-logging.cmd
│ ├── embedded-claim-ipc-throughput
│ ├── embedded-claim-ipc-throughput.cmd
│ ├── embedded-dual-exclusive-throughput
│ ├── embedded-dual-exclusive-throughput.cmd
│ ├── embedded-exclusive-claim-ipc-throughput
│ ├── embedded-exclusive-claim-ipc-throughput.cmd
│ ├── embedded-exclusive-ipc-throughput
│ ├── embedded-exclusive-ipc-throughput.cmd
│ ├── embedded-exclusive-spied-throughput
│ ├── embedded-exclusive-spied-throughput.cmd
│ ├── embedded-exclusive-throughput
│ ├── embedded-exclusive-throughput.cmd
│ ├── embedded-exclusive-vectored-ipc-throughput
│ ├── embedded-exclusive-vectored-ipc-throughput.cmd
│ ├── embedded-ipc-throughput
│ ├── embedded-ipc-throughput.cmd
│ ├── embedded-ping-pong
│ ├── embedded-ping-pong.cmd
│ ├── embedded-throughput
│ ├── embedded-throughput.cmd
│ ├── error-stat
│ ├── error-stat.cmd
│ ├── file-receiver
│ ├── file-receiver.cmd
│ ├── file-sender
│ ├── file-sender.cmd
│ ├── ipc-c-media-driver
│ ├── java-common
│ ├── java-common.cmd
│ ├── linux-qdisc-basic
│ ├── log-inspector
│ ├── log-inspector.cmd
│ ├── logging-c-media-driver
│ ├── logging-media-driver
│ ├── logging-media-driver.cmd
│ ├── loss-rate-c-media-driver
│ ├── loss-stat
│ ├── loss-stat.cmd
│ ├── low-latency-c-media-driver
│ ├── low-latency-c-media-driver.cmd
│ ├── low-latency-media-driver
│ ├── low-latency-media-driver.cmd
│ ├── media-driver
│ ├── media-driver.cmd
│ ├── ping
│ ├── ping.cmd
│ ├── pong
│ ├── pong.cmd
│ ├── rate-subscriber
│ ├── rate-subscriber.cmd
│ ├── raw
│ │ ├── hack-select-receive-send-udp-pong
│ │ ├── hack-select-receive-send-udp-pong.cmd
│ │ ├── receive-send-udp-pong
│ │ ├── receive-send-udp-pong.cmd
│ │ ├── send-hack-select-receive-udp-ping
│ │ ├── send-hack-select-receive-udp-ping.cmd
│ │ ├── send-receive-udp-ping
│ │ └── send-receive-udp-ping.cmd
│ ├── run-java
│ ├── run-java-logging
│ ├── run-java-logging.cmd
│ ├── run-java.cmd
│ ├── show_thread_affinity.sh
│ ├── stream-stat
│ ├── stream-stat.cmd
│ ├── streaming-publisher
│ ├── streaming-publisher.cmd
│ └── throughput-c-media-driver
└── src
│ ├── docs
│ └── asciidoc
│ │ └── Cluster-Tutorial.asciidoc
│ ├── main
│ ├── c
│ │ ├── CMakeLists.txt
│ │ ├── aeron_stat.c
│ │ ├── basic_mds_subscriber.c
│ │ ├── basic_publisher.c
│ │ ├── basic_subscriber.c
│ │ ├── cping.c
│ │ ├── cpong.c
│ │ ├── driver_tool.c
│ │ ├── error_stat.c
│ │ ├── loss_stat.c
│ │ ├── rate_subscriber.c
│ │ ├── raw
│ │ │ └── ping_pong_raw.c
│ │ ├── response
│ │ │ ├── response_client.c
│ │ │ └── response_server.c
│ │ ├── sample_util.c
│ │ ├── sample_util.h
│ │ ├── samples_configuration.h
│ │ ├── streaming_exclusive_publisher.c
│ │ └── streaming_publisher.c
│ ├── cpp
│ │ ├── BasicPublisher.cpp
│ │ ├── BasicSubscriber.cpp
│ │ ├── CMakeLists.txt
│ │ ├── Configuration.h
│ │ ├── ExclusivePingPong.cpp
│ │ ├── ExclusiveThroughput.cpp
│ │ ├── LossStat.cpp
│ │ ├── Ping.cpp
│ │ ├── PingPong.cpp
│ │ ├── Pong.cpp
│ │ ├── RateReporter.h
│ │ ├── RateSubscriber.cpp
│ │ ├── StreamingPublisher.cpp
│ │ ├── Throughput.cpp
│ │ └── raw
│ │ │ └── TimeTests.cpp
│ └── java
│ │ └── io
│ │ └── aeron
│ │ ├── cluster
│ │ └── ConsensusModuleSnapshotPendingServiceMessagesPatch.java
│ │ ├── response
│ │ ├── ResponseClient.java
│ │ └── ResponseServer.java
│ │ └── samples
│ │ ├── AeronStat.java
│ │ ├── BacklogStat.java
│ │ ├── BasicPublisher.java
│ │ ├── BasicSubscriber.java
│ │ ├── CncFileReader.java
│ │ ├── DriverTool.java
│ │ ├── EmbeddedBufferClaimIpcThroughput.java
│ │ ├── EmbeddedDualExclusiveThroughput.java
│ │ ├── EmbeddedExclusiveBufferClaimIpcThroughput.java
│ │ ├── EmbeddedExclusiveIpcThroughput.java
│ │ ├── EmbeddedExclusiveSpiedThroughput.java
│ │ ├── EmbeddedExclusiveThroughput.java
│ │ ├── EmbeddedExclusiveVectoredIpcThroughput.java
│ │ ├── EmbeddedIpcThroughput.java
│ │ ├── EmbeddedPingPong.java
│ │ ├── EmbeddedThroughput.java
│ │ ├── ErrorStat.java
│ │ ├── FileReceiver.java
│ │ ├── FileSender.java
│ │ ├── ImageRateReporter.java
│ │ ├── ImageRateSubscriber.java
│ │ ├── LogInspector.java
│ │ ├── LossStat.java
│ │ ├── LowLatencyMediaDriver.java
│ │ ├── MultiplePublishersWithFragmentation.java
│ │ ├── MultipleSubscribersWithFragmentAssembly.java
│ │ ├── Ping.java
│ │ ├── Pong.java
│ │ ├── RateReporter.java
│ │ ├── RateSubscriber.java
│ │ ├── SampleConfiguration.java
│ │ ├── SamplesUtil.java
│ │ ├── SetControllableIdleStrategy.java
│ │ ├── SimplePublisher.java
│ │ ├── SimpleSubscriber.java
│ │ ├── StreamStat.java
│ │ ├── StreamingPublisher.java
│ │ ├── archive
│ │ ├── ArchiveCreator.java
│ │ ├── EmbeddedRecordingThroughput.java
│ │ ├── EmbeddedReplayThroughput.java
│ │ ├── IndexedReplicatedRecording.java
│ │ ├── RecordedBasicPublisher.java
│ │ ├── RecordingDescriptor.java
│ │ ├── RecordingDescriptorCollector.java
│ │ ├── RecordingReplicator.java
│ │ ├── RecordingSignalCapture.java
│ │ ├── ReplayedBasicSubscriber.java
│ │ ├── SampleAuthenticator.java
│ │ ├── SampleAuthenticatorSupplier.java
│ │ ├── SampleAuthorisationService.java
│ │ ├── Samples.java
│ │ ├── SegmentInspector.java
│ │ └── package-info.java
│ │ ├── cluster
│ │ ├── ClusterConfig.java
│ │ ├── EchoService.java
│ │ ├── EchoServiceNode.java
│ │ ├── package-info.java
│ │ └── tutorial
│ │ │ ├── BasicAuctionClusterClient.java
│ │ │ ├── BasicAuctionClusteredService.java
│ │ │ ├── BasicAuctionClusteredServiceNode.java
│ │ │ ├── SingleNodeCluster.java
│ │ │ └── package-info.java
│ │ ├── echo
│ │ ├── CreateEchoPair.java
│ │ ├── EchoPair.java
│ │ ├── Provisioning.java
│ │ ├── ProvisioningClientMain.java
│ │ ├── ProvisioningMessage.java
│ │ ├── ProvisioningServerMain.java
│ │ ├── RemoveAllEchoPairs.java
│ │ └── api
│ │ │ ├── EchoMonitorMBean.java
│ │ │ ├── ProvisioningConstants.java
│ │ │ └── ProvisioningMBean.java
│ │ ├── package-info.java
│ │ ├── raw
│ │ ├── BurstSendReceiveUdpPing.java
│ │ ├── Common.java
│ │ ├── ReceiveSendUdpPong.java
│ │ ├── ReceiveWriteUdpPong.java
│ │ ├── SelectReceiveSendUdpPong.java
│ │ ├── SendReceiveUdpPing.java
│ │ ├── SendSelectReceiveUdpPing.java
│ │ ├── WriteReceiveUdpPing.java
│ │ └── package-info.java
│ │ ├── security
│ │ ├── SimpleAuthenticator.java
│ │ └── SimpleAuthorisationService.java
│ │ └── stress
│ │ ├── CRC64.java
│ │ ├── ShutdownBarrier.java
│ │ ├── SimpleReservedValueSupplier.java
│ │ ├── StressMdcClient.java
│ │ ├── StressMdcServer.java
│ │ ├── StressUnicastClient.java
│ │ ├── StressUnicastServer.java
│ │ └── StressUtil.java
│ └── test
│ └── java
│ └── io
│ └── aeron
│ ├── cluster
│ └── ConsensusModuleSnapshotPendingServiceMessagesPatchTest.java
│ └── samples
│ ├── LogInspectorAsciiFormatBytesTest.java
│ ├── StreamStatTest.java
│ ├── archive
│ ├── RecordingDescriptorCollectorTest.java
│ └── RecordingReplicatorTest.java
│ └── security
│ ├── SimpleAuthenticatorTest.java
│ └── SimpleAuthorisationServiceTest.java
├── aeron-system-tests
├── CMakeLists.txt
├── README.md
├── scripts
│ └── provisioning
│ │ ├── README.md
│ │ └── fabfile.py
└── src
│ └── test
│ └── java
│ └── io
│ └── aeron
│ ├── AsyncResourceTest.java
│ ├── BufferClaimMessageTest.java
│ ├── ChannelEndpointStatusTest.java
│ ├── ChannelValidationTest.java
│ ├── ClientContextTest.java
│ ├── ClientErrorHandlerTest.java
│ ├── ConcurrentPublicationTermRotationRaceTest.java
│ ├── ControlledMessageTest.java
│ ├── CounterReferencesTest.java
│ ├── CounterTest.java
│ ├── DataLossAndRecoverySystemTest.java
│ ├── ErrorHandlerTest.java
│ ├── ExclusivePublicationTest.java
│ ├── FlowControlTests.java
│ ├── FragmentedMessageTest.java
│ ├── GapFillLossTest.java
│ ├── ImageAvailabilityTest.java
│ ├── ImageRangeTest.java
│ ├── LifecycleTest.java
│ ├── MaxFlowControlStrategySystemTest.java
│ ├── MaxPositionPublicationTest.java
│ ├── MdsAndMdcInteractionTest.java
│ ├── MdsEosPositionTest.java
│ ├── MemoryOrderingTest.java
│ ├── MinFlowControlSystemTest.java
│ ├── MinPositionSubscriptionTest.java
│ ├── MultiDestinationCastTest.java
│ ├── MultiDestinationSubscriptionTest.java
│ ├── MultiDriverTest.java
│ ├── MultiGapLossAndRecoverySystemTest.java
│ ├── MultiSubscriberTest.java
│ ├── MultipleMulticastsSubscriptionsTest.java
│ ├── NameReResolutionTest.java
│ ├── PathologicallySlowConsumerTest.java
│ ├── PongTest.java
│ ├── PrintEnvInfoTest.java
│ ├── PubAndSubTest.java
│ ├── PublicationRevokeTest.java
│ ├── PublicationUnblockTest.java
│ ├── PublishFromArbitraryPositionTest.java
│ ├── ReentrantClientTest.java
│ ├── RegistrationAndOwnerTest.java
│ ├── RejectImageTest.java
│ ├── RemoteEchoTest.java
│ ├── ResolvedEndpointSystemTest.java
│ ├── ResponseChannelsTest.java
│ ├── SessionSpecificPublicationTest.java
│ ├── SessionSpecificSubscriptionTest.java
│ ├── SpecifiedPositionPublicationTest.java
│ ├── SpySimulatedConnectionTest.java
│ ├── SpySubscriptionTest.java
│ ├── StopStartSecondSubscriberTest.java
│ ├── StreamSessionLimitsTest.java
│ ├── SubscriberEndOfStreamTest.java
│ ├── SubscriptionReconnectTest.java
│ ├── SystemTests.java
│ ├── TaggedFlowControlSystemTest.java
│ ├── TermBufferLengthTest.java
│ ├── TimestampingSystemTest.java
│ ├── TwoBufferOfferMessageTest.java
│ ├── UntetheredSubscriptionTest.java
│ ├── UriValidationTest.java
│ ├── WildcardPortManagerSystemTest.java
│ ├── archive
│ ├── ArchiveAbandonedClientTest.java
│ ├── ArchiveAuthenticationTest.java
│ ├── ArchiveDeleteAndRestartTest.java
│ ├── ArchiveListRecordingsTest.java
│ ├── ArchiveReplayTest.java
│ ├── ArchiveResponseClientFailuresTest.java
│ ├── ArchiveResponseClientTest.java
│ ├── ArchiveSystemTest.java
│ ├── ArchiveSystemTests.java
│ ├── ArchiveTruncateRecordingTest.java
│ ├── BasicArchiveTest.java
│ ├── CatalogWithJumboRecordingsAndGapsTest.java
│ ├── DualReplayMergeTest.java
│ ├── ExtendRecordingTest.java
│ ├── ManageRecordingHistoryTest.java
│ ├── MigrateSegmentsTest.java
│ ├── ReplayMergeTest.java
│ ├── ReplicateRecordingTest.java
│ └── TestRecordingSignalConsumer.java
│ ├── cluster
│ ├── AppointedLeaderTest.java
│ ├── ClusterBackupTest.java
│ ├── ClusterInstrumentor.java
│ ├── ClusterNetworkTopologyTest.java
│ ├── ClusterSessionReliabilityTest.java
│ ├── ClusterTest.java
│ ├── ClusterToolTest.java
│ ├── FailedFirstElectionClusterTest.java
│ ├── InitiateShutdownThenImmediatelyCloseLeaderTest.java
│ ├── MethodCallBlocker.java
│ ├── MultiClusteredServicesTest.java
│ ├── MultiModuleSharedDriverTest.java
│ ├── MultiNodeTest.java
│ ├── RacingCatchupClusterTest.java
│ ├── RecoverAfterFailedCatchupClusterTest.java
│ ├── ServiceIpcIngressMessageTest.java
│ ├── SingleNodeTest.java
│ ├── StalledLeaderLogReplicationClusterTest.java
│ └── StartFromTruncatedRecordingLogTest.java
│ ├── driver
│ ├── BytesSentAndReceivedTest.java
│ ├── DriverNameResolverTest.java
│ ├── DriverShouldStartIfAeronDirectoryExistsTest.java
│ ├── DriverSpaceTest.java
│ ├── ExperimentalDriverFeaturesTest.java
│ ├── FilePageSizeTest.java
│ ├── Issue1719Test.java
│ ├── ResolveEphemeralSubscriptionPortTest.java
│ └── SystemCountersTest.java
│ ├── security
│ ├── SimpleAuthenticatorTest.java
│ └── SimpleAuthorisationServiceTest.java
│ └── test
│ └── driver
│ └── TestMediaDriverTest.java
├── aeron-test-support
├── README.md
└── src
│ ├── main
│ └── java
│ │ └── io
│ │ └── aeron
│ │ └── test
│ │ ├── AdjustableClock.java
│ │ ├── BindingsTest.java
│ │ ├── CapturingPrintStream.java
│ │ ├── CountersAnswer.java
│ │ ├── CountingFragmentHandler.java
│ │ ├── DataCollector.java
│ │ ├── DisableJavaUtilLogging.java
│ │ ├── EventLogExtension.java
│ │ ├── HideStdErrExtension.java
│ │ ├── IgnoreStdErr.java
│ │ ├── InterruptAfter.java
│ │ ├── InterruptingTestCallback.java
│ │ ├── MediaDriverTestUtil.java
│ │ ├── NetworkTestingUtil.java
│ │ ├── NullOutputStream.java
│ │ ├── RandomWatcher.java
│ │ ├── SlowTest.java
│ │ ├── SystemTestConfig.java
│ │ ├── SystemTestWatcher.java
│ │ ├── TestContexts.java
│ │ ├── TestIdleStrategy.java
│ │ ├── Tests.java
│ │ ├── ThreadNamingTestCallback.java
│ │ ├── TopologyTest.java
│ │ ├── cluster
│ │ ├── ClusterTests.java
│ │ ├── StubClusteredService.java
│ │ ├── TestBackupNode.java
│ │ ├── TestCluster.java
│ │ ├── TestClusterClock.java
│ │ └── TestNode.java
│ │ ├── driver
│ │ ├── CTestMediaDriver.java
│ │ ├── DriverOutputConsumer.java
│ │ ├── JavaTestMediaDriver.java
│ │ ├── PortLossGenerator.java
│ │ ├── RedirectingNameResolver.java
│ │ ├── StreamIdLossGenerator.java
│ │ └── TestMediaDriver.java
│ │ └── launcher
│ │ ├── FileResolveUtil.java
│ │ ├── RemoteLaunchClient.java
│ │ └── RemoteLaunchServer.java
│ └── test
│ └── java
│ └── io
│ └── aeron
│ └── test
│ ├── DataCollectorTest.java
│ ├── ThreadNamingCallbackTest.java
│ └── launcher
│ └── RemoteLauncherTest.java
├── build.gradle
├── buildSrc
├── build.gradle
├── settings.gradle
└── src
│ └── main
│ └── java
│ └── io
│ └── aeron
│ └── build
│ ├── AsciidocUtil.java
│ ├── AsciidoctorPreprocessTask.java
│ ├── DeduplicateTask.java
│ ├── GithubUtil.java
│ └── TutorialPublishTask.java
├── config
├── checkstyle
│ ├── checkstyle.xml
│ └── suppressions.xml
└── ide
│ ├── clion
│ └── aeron_cpp.xml
│ └── idea
│ └── aeron.xml
├── cppbuild
├── Doxyfile.in
├── HdrHistogram_c-0.11.8.zip
├── cppbuild
├── cppbuild.cmd
├── cppbuild.ps1
├── googletest-1.14.0.zip
├── rocky-docker-build
├── rocky
│ └── Dockerfile
├── vs-helper.cmd
└── vsr.cmd
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── run-ci-tests.sh
├── settings.gradle
└── version.txt
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.bat text eol=crlf
3 | *.cmd text eol=crlf
--------------------------------------------------------------------------------
/.github/codeql/codeql-config.yml:
--------------------------------------------------------------------------------
1 | name: "Aeron CodeQL Scanning"
2 |
3 | queries:
4 | - uses: security-and-quality
5 |
6 | query-filters:
7 | - exclude:
8 | id: java/missing-override-annotation
9 | - exclude:
10 | id: cpp/poorly-documented-function
11 | - exclude:
12 | id: cpp/unused-static-variable
13 | - exclude:
14 | id: java/unused-reference-type
15 | - exclude:
16 | id: java/unused-parameter
17 | - exclude:
18 | id: cpp/trivial-switch
19 | - exclude:
20 | id: cpp/long-switch
21 | - exclude:
22 | id: cpp/integer-used-for-enum
23 | - exclude:
24 | id: cpp/stack-address-escape
25 |
--------------------------------------------------------------------------------
/aeron-agent/src/main/java/io/aeron/agent/EventCode.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.agent;
17 |
18 | /**
19 | * Identifies an event that can be enabled for logging.
20 | */
21 | public interface EventCode
22 | {
23 | /**
24 | * Returns the unique event identifier withing an {@link EventCodeType}.
25 | *
26 | * @return the unique event identifier withing an {@link EventCodeType}.
27 | */
28 | int id();
29 | }
30 |
--------------------------------------------------------------------------------
/aeron-agent/src/main/resources/META-INF/services/io.aeron.agent.ComponentLogger:
--------------------------------------------------------------------------------
1 | io.aeron.agent.DriverComponentLogger
2 | io.aeron.agent.ArchiveComponentLogger
3 | io.aeron.agent.ClusterComponentLogger
4 |
--------------------------------------------------------------------------------
/aeron-agent/src/test/java/io/aeron/agent/DriverEventCodeTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.agent;
17 |
18 | import org.junit.jupiter.params.ParameterizedTest;
19 | import org.junit.jupiter.params.provider.EnumSource;
20 |
21 | import static org.junit.jupiter.api.Assertions.assertSame;
22 |
23 | class DriverEventCodeTest
24 | {
25 | @ParameterizedTest
26 | @EnumSource(DriverEventCode.class)
27 | void getCodeById(final DriverEventCode code)
28 | {
29 | assertSame(code, DriverEventCode.get(code.id()));
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/aeron-all/README.md:
--------------------------------------------------------------------------------
1 | Aeron All
2 | ===
3 |
4 | This subproject contains all-in-one build of Aeron with dependencies.
5 |
--------------------------------------------------------------------------------
/aeron-annotations/src/main/java/io/aeron/config/ExpectedConfig.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.config;
17 |
18 | import java.io.Serializable;
19 |
20 | /**
21 | */
22 | public class ExpectedConfig implements Serializable
23 | {
24 | private static final long serialVersionUID = -2025994445988286324L;
25 |
26 | /**
27 | * C config.
28 | */
29 | public final ExpectedCConfig c;
30 |
31 | ExpectedConfig()
32 | {
33 | c = new ExpectedCConfig();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/aeron-annotations/src/main/java/io/aeron/version/Version.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.version;
17 |
18 | /**
19 | * Version information for a specific component.
20 | */
21 | public interface Version
22 | {
23 | /**
24 | * @return major version portion.
25 | */
26 | int majorVersion();
27 |
28 | /**
29 | * @return minor version portion.
30 | */
31 | int minorVersion();
32 |
33 | /**
34 | * @return patched version portion.
35 | */
36 | int patchVersion();
37 |
38 | /**
39 | * @return git SHA.
40 | */
41 | String gitSha();
42 | }
43 |
--------------------------------------------------------------------------------
/aeron-annotations/src/main/java/io/aeron/version/Versioned.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.version;
17 |
18 | import java.lang.annotation.ElementType;
19 | import java.lang.annotation.Retention;
20 | import java.lang.annotation.RetentionPolicy;
21 | import java.lang.annotation.Target;
22 |
23 | /**
24 | * Annotation to indicate a version class should be generated.
25 | */
26 | @Target({ElementType.TYPE, ElementType.CONSTRUCTOR})
27 | @Retention(RetentionPolicy.SOURCE)
28 | public @interface Versioned
29 | {
30 | }
31 |
--------------------------------------------------------------------------------
/aeron-annotations/src/main/resources/META-INF/services/javax.annotation.processing.Processor:
--------------------------------------------------------------------------------
1 | io.aeron.version.VersionProcessor
2 | io.aeron.config.ConfigProcessor
3 | io.aeron.counter.CounterProcessor
4 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/c/client/aeron_archive_async_connect.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_ARCHIVE_ASYNC_CONNECT_H
18 | #define AERON_ARCHIVE_ASYNC_CONNECT_H
19 |
20 | #include "aeron_archive.h"
21 |
22 | uint8_t aeron_archive_async_connect_step(aeron_archive_async_connect_t *async);
23 |
24 | #endif //AERON_ARCHIVE_ASYNC_CONNECT_H
25 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/c/client/aeron_archive_configuration.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "aeron_archive_configuration.h"
18 | #include "aeron_common.h"
19 |
20 | int32_t aeron_archive_semantic_version(void)
21 | {
22 | return aeron_semantic_version_compose(AERON_ARCHIVE_MAJOR_VERSION, AERON_ARCHIVE_MINOR_VERSION, AERON_ARCHIVE_PATCH_VERSION);
23 | }
24 |
25 | int32_t aeron_archive_protocol_version_with_archive_id(void)
26 | {
27 | return aeron_semantic_version_compose(1, 11, 0);
28 | }
29 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/c/client/aeron_archive_configuration.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_C_ARCHIVE_CONFIGURATION_H
18 | #define AERON_C_ARCHIVE_CONFIGURATION_H
19 |
20 | #include "aeron_archive_proxy.h"
21 |
22 | #define AERON_ARCHIVE_MAJOR_VERSION 1
23 | #define AERON_ARCHIVE_MINOR_VERSION 11
24 | #define AERON_ARCHIVE_PATCH_VERSION 0
25 |
26 | int32_t aeron_archive_semantic_version(void);
27 |
28 | int32_t aeron_archive_protocol_version_with_archive_id(void);
29 |
30 | #endif //AERON_C_ARCHIVE_CONFIGURATION_H
31 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/c/client/aeron_archive_recording_signal.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_ARCHIVE_RECORDING_SIGNAL_H
18 | #define AERON_ARCHIVE_RECORDING_SIGNAL_H
19 |
20 | #include "aeron_archive.h"
21 |
22 | int aeron_archive_recording_signal_dispatch_buffer(aeron_archive_context_t *ctx, const uint8_t* buffer, size_t length);
23 |
24 | void aeron_archive_recording_signal_dispatch_signal(aeron_archive_context_t *ctx, aeron_archive_recording_signal_t *signal);
25 |
26 | #endif //AERON_ARCHIVE_RECORDING_SIGNAL_H
27 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/c/client/aeron_archive_replay_params.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_ARCHIVE_REPLAY_PARAMS_H
18 | #define AERON_ARCHIVE_REPLAY_PARAMS_H
19 |
20 | #include "aeron_archive.h"
21 |
22 | int aeron_archive_replay_params_copy(aeron_archive_replay_params_t *dst, aeron_archive_replay_params_t *src);
23 |
24 | bool aeron_archive_replay_params_is_bounded(aeron_archive_replay_params_t *params);
25 |
26 | #endif //AERON_ARCHIVE_REPLAY_PARAMS_H
27 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/cpp/client/AeronArchiveVersion.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | #ifndef AERON_ARCHIVE_VERSION_H
17 | #define AERON_ARCHIVE_VERSION_H
18 |
19 | #include "string"
20 |
21 | #ifdef major
22 | #undef major
23 | #endif
24 | #ifdef minor
25 | #undef minor
26 | #endif
27 |
28 | namespace aeron { namespace archive { namespace client
29 | {
30 |
31 | class AeronArchiveVersion
32 | {
33 | public:
34 | static std::string text();
35 | static std::string gitSha();
36 | static int major();
37 | static int minor();
38 | static int patch();
39 | };
40 |
41 | }}}
42 |
43 | #endif //AERON_ARCHIVE_VERSION_H
44 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/ArchiveMigrationStep.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.archive;
17 |
18 | import java.io.File;
19 | import java.io.PrintStream;
20 |
21 | interface ArchiveMigrationStep
22 | {
23 | int minimumVersion();
24 |
25 | void migrate(PrintStream stream, ArchiveMarkFile markFile, Catalog catalog, File archiveDir);
26 | }
27 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/CatalogTool.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.archive;
17 |
18 | /**
19 | * Tool for inspecting and performing administrative tasks on an {@link Archive} and its contents which is described in
20 | * the {@link Catalog}. The tool delegates to {@link ArchiveTool}.
21 | */
22 | public class CatalogTool
23 | {
24 | /**
25 | * Main method for launching the process.
26 | *
27 | * @param args passed to the process.
28 | */
29 | public static void main(final String[] args)
30 | {
31 | ArchiveTool.main(args);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/Session.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * https://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | *
15 | */
16 | package io.aeron.archive;
17 |
18 | /**
19 | * Sessions are created by the conductor but perform their work on a different {@link SessionWorker} potentially. After
20 | * construction sessions are safely published to the {@link SessionWorker} and thereafter interacted with only from
21 | * that thread until they are done. Once done they are closed from the conductor.
22 | */
23 | interface Session
24 | {
25 | void abort(String reason);
26 |
27 | boolean isDone();
28 |
29 | int doWork();
30 |
31 | long sessionId();
32 |
33 | void close();
34 | }
35 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/checksum/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | /**
18 | * Checksums can be added to recordings so that file corruption can be detected.
19 | *
20 | * Recordings can be checksumed as they are recorded or later via {@link io.aeron.archive.ArchiveTool} checksum methods.
21 | * Checksums are generated via implementations of {@link io.aeron.archive.checksum.Checksum} interface.
22 | *
23 | * Recordings can be verified on replay or via the {@link io.aeron.archive.ArchiveTool} verify methods.
24 | */
25 | package io.aeron.archive.checksum;
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/client/ControlResponseListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.archive.client;
17 |
18 | /**
19 | * Interface for listening to events from the archive in response to requests.
20 | */
21 | public interface ControlResponseListener extends RecordingDescriptorConsumer, ControlEventListener
22 | {
23 | }
24 |
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/client/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * {@link io.aeron.archive.client.AeronArchive} client for communicating with a local or remote Archive.
18 | */
19 | package io.aeron.archive.client;
--------------------------------------------------------------------------------
/aeron-archive/src/main/java/io/aeron/archive/status/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Counters for tracking progress of recordings in a local Archive.
18 | */
19 | package io.aeron.archive.status;
--------------------------------------------------------------------------------
/aeron-client/README.md:
--------------------------------------------------------------------------------
1 | Aeron Client
2 | ===
3 |
4 | [](http://www.javadoc.io/doc/io.aeron/aeron-all)
5 |
6 | Aeron clients are used to communicate to the media driver for the publishing of messages via publications and consuming messages of replicated publication images via subscriptions.
7 |
8 | Clients communicate over IPC to the media driver thus allowing the media driver to run out of process and be in a different language to the clients.
--------------------------------------------------------------------------------
/aeron-client/src/main/c/aeron_alloc.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_ALLOC_H
18 | #define AERON_ALLOC_H
19 |
20 | #include
21 |
22 | int aeron_alloc_no_err(void **ptr, size_t size);
23 | int aeron_alloc(void **ptr, size_t size);
24 | int aeron_alloc_aligned(void **ptr, size_t *offset, size_t size, size_t alignment);
25 | int aeron_reallocf(void **ptr, size_t size);
26 | void aeron_free(void *ptr);
27 |
28 | #endif //AERON_ALLOC_H
29 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/aeron_client.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_CLIENT_H
18 | #define AERON_CLIENT_H
19 |
20 | #include "aeronc.h"
21 | #include "aeron_agent.h"
22 | #include "aeron_context.h"
23 | #include "aeron_client_conductor.h"
24 |
25 | typedef struct aeron_stct
26 | {
27 | aeron_client_conductor_t conductor;
28 | aeron_agent_runner_t runner;
29 | aeron_context_t *context;
30 | }
31 | aeron_t;
32 |
33 | int aeron_client_connect_to_driver(aeron_mapped_file_t *cnc_mmap, aeron_context_t *context);
34 |
35 | #endif //AERON_CLIENT_H
36 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/collections/aeron_hashing.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "collections/aeron_hashing.h"
18 |
19 | extern uint64_t aeron_hash_code(uint64_t value);
20 |
21 | extern size_t aeron_hash(uint64_t value, size_t mask);
22 |
23 | extern size_t aeron_even_hash(uint64_t value, size_t mask);
24 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/collections/aeron_map.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "collections/aeron_map.h"
18 |
19 | extern int64_t aeron_map_compound_key(int32_t high, int32_t low);
20 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/collections/aeron_map.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_AERON_MAP_H
18 | #define AERON_AERON_MAP_H
19 |
20 | #define AERON_MAP_DEFAULT_LOAD_FACTOR (0.65f)
21 |
22 | #include
23 |
24 | inline int64_t aeron_map_compound_key(int32_t high, int32_t low)
25 | {
26 | return (int64_t)(((uint64_t)high << 32) | (low));
27 | }
28 |
29 | #endif //AERON_AERON_MAP_H
30 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_atomic.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "concurrent/aeron_atomic.h"
18 |
19 | extern bool aeron_cas_int64(volatile int64_t *dst, int64_t expected, int64_t desired);
20 |
21 | extern bool aeron_cas_uint64(volatile uint64_t *dst, uint64_t expected, uint64_t desired);
22 |
23 | extern bool aeron_cas_int32(volatile int32_t *dst, int32_t expected, int32_t desired);
24 |
25 | extern void aeron_acquire(void);
26 |
27 | extern void aeron_release(void);
28 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_atomic.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_ATOMIC_H
18 | #define AERON_ATOMIC_H
19 |
20 | #include "util/aeron_platform.h"
21 |
22 | #if defined(AERON_COMPILER_GCC) && defined(AERON_CPU_X64)
23 | #include "concurrent/aeron_atomic64_gcc_x86_64.h"
24 | #elif defined(AERON_COMPILER_GCC) && defined(AERON_CPU_ARM)
25 | #include "concurrent/aeron_atomic64_c11.h"
26 | #elif defined(AERON_COMPILER_MSVC) && defined(AERON_CPU_X64)
27 | #include "concurrent/aeron_atomic64_msvc.h"
28 | #else
29 | #error Unsupported platform!
30 | #endif
31 |
32 | #endif //AERON_ATOMIC_H
33 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_concurrent_array_queue.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_CONCURRENT_ARRAY_QUEUE_H
18 | #define AERON_CONCURRENT_ARRAY_QUEUE_H
19 |
20 | typedef enum aeron_queue_offer_result_stct
21 | {
22 | AERON_OFFER_SUCCESS = 0,
23 | AERON_OFFER_ERROR = -2,
24 | AERON_OFFER_FULL = -1
25 | }
26 | aeron_queue_offer_result_t;
27 |
28 | typedef void (*aeron_queue_drain_func_t)(void *clientd, void *item);
29 |
30 | #endif //AERON_CONCURRENT_ARRAY_QUEUE_H
31 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_term_gap_filler.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_TERM_GAP_FILLER_H
18 | #define AERON_TERM_GAP_FILLER_H
19 |
20 | #include
21 | #include "aeron_logbuffer_descriptor.h"
22 |
23 | bool aeron_term_gap_filler_try_fill_gap(
24 | aeron_logbuffer_metadata_t *log_meta_data,
25 | uint8_t *buffer,
26 | int32_t term_id,
27 | int32_t gap_offset,
28 | int32_t gap_length);
29 |
30 | #endif //AERON_TERM_GAP_FILLER_H
31 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_term_gap_scanner.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "concurrent/aeron_term_gap_scanner.h"
18 |
19 | extern int32_t aeron_term_gap_scanner_scan_for_gap(
20 | const uint8_t *buffer,
21 | int32_t term_id,
22 | int32_t term_offset,
23 | int32_t limit_offset,
24 | aeron_term_gap_scanner_on_gap_detected_func_t on_gap_detected,
25 | void *clientd);
26 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_term_rebuilder.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "concurrent/aeron_term_rebuilder.h"
18 |
19 | extern void aeron_term_rebuilder_insert(uint8_t *dest, const uint8_t *src, size_t length);
20 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/concurrent/aeron_term_scanner.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "concurrent/aeron_term_scanner.h"
18 |
19 | extern int32_t aeron_term_scanner_scan_for_availability(
20 | const uint8_t *buffer, int32_t term_length_left, int32_t max_length, int32_t *padding);
21 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/status/aeron_local_sockaddr.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_AERON_LOCAL_SOCKADDR_H
18 | #define AERON_AERON_LOCAL_SOCKADDR_H
19 |
20 | #include
21 | #include
22 |
23 | int aeron_local_sockaddr_find_addrs(
24 | aeron_counters_reader_t *reader,
25 | int32_t channel_status_indicator_id,
26 | aeron_iovec_t *address_vec,
27 | size_t address_vec_len);
28 |
29 | #endif //AERON_AERON_LOCAL_SOCKADDR_H
30 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/util/aeron_arrayutil.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "util/aeron_arrayutil.h"
18 |
19 | extern int aeron_array_ensure_capacity(
20 | uint8_t **array, size_t element_size, size_t old_capacity, size_t new_capacity);
21 |
22 | extern void aeron_array_fast_unordered_remove(
23 | uint8_t *restrict array, size_t element_size, size_t index, size_t last_index);
24 |
25 | extern int aeron_array_add(
26 | uint8_t **array, size_t element_size, size_t new_length, uint8_t *restrict element_to_add);
27 |
28 | extern int aeron_array_remove(
29 | uint8_t **array, size_t element_size, size_t index, size_t old_length);
30 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/util/aeron_deque.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by mike on 23/01/23.
3 | //
4 |
5 | #ifndef AERON_DEQUE_H
6 | #define AERON_DEQUE_H
7 |
8 | #include
9 | #include
10 |
11 | struct aeron_deque_stct
12 | {
13 | uint8_t *data;
14 | size_t element_count;
15 | size_t element_size;
16 | size_t first_element;
17 | size_t last_element;
18 | };
19 | typedef struct aeron_deque_stct aeron_deque_t;
20 |
21 | int aeron_deque_init(aeron_deque_t *deque, size_t initial_element_count, size_t element_size);
22 |
23 | void aeron_deque_close(aeron_deque_t *deque);
24 |
25 | /**
26 | * Add value into the deque as the last element. Will memcpy into the deque from the void pointer provided using
27 | * the specified element size. May need to allocate in order to increase the size of the dequeue.
28 | *
29 | * Errors:
30 | * ENOMEM if growing the array fails.
31 | *
32 | * @param deque to add the value too.
33 | * @param value value to be added.
34 | * @return 0 on success, -1 on failure.
35 | */
36 | int aeron_deque_add_last(aeron_deque_t *deque, void *value);
37 |
38 | int aeron_deque_remove_first(aeron_deque_t *deque, void *value);
39 |
40 | #endif //AERON_DEQUE_H
41 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/util/aeron_env.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #if defined(__linux__)
18 | #define _BSD_SOURCE
19 | #endif
20 |
21 | #include
22 |
23 | #include "util/aeron_env.h"
24 |
25 | int aeron_env_set(const char *key, const char *val)
26 | {
27 | #if defined(WIN32)
28 | return _putenv_s(key, val);
29 | #else
30 | return setenv(key, val, 1);
31 | #endif
32 | }
33 |
34 | int aeron_env_unset(const char *key)
35 | {
36 | #if defined(WIN32)
37 | return _putenv_s(key, "");
38 | #else
39 | return unsetenv(key);
40 | #endif
41 | }
42 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/util/aeron_env.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_AERON_ENV_H
18 | #define AERON_AERON_ENV_H
19 |
20 | int aeron_env_set(const char *key, const char *val);
21 |
22 | int aeron_env_unset(const char *key);
23 |
24 | #endif //AERON_AERON_ENV_H
25 |
--------------------------------------------------------------------------------
/aeron-client/src/main/c/util/aeron_math.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "aeron_math.h"
18 |
19 | extern int32_t aeron_add_wrap_i32(int32_t a, int32_t b);
20 | extern int32_t aeron_sub_wrap_i32(int32_t a, int32_t b);
21 | extern int32_t aeron_mul_wrap_i32(int32_t a, int32_t b);
22 |
--------------------------------------------------------------------------------
/aeron-client/src/main/cpp/AeronVersion.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | #include "AeronVersion.h"
17 |
18 | namespace aeron
19 | {
20 |
21 | std::string AeronVersion::text()
22 | {
23 | return AERON_VERSION_TXT;
24 | }
25 |
26 | std::string AeronVersion::gitSha()
27 | {
28 | return AERON_VERSION_GITSHA;
29 | }
30 |
31 | int AeronVersion::major()
32 | {
33 | return AERON_VERSION_MAJOR;
34 | }
35 |
36 | int AeronVersion::minor()
37 | {
38 | return AERON_VERSION_MINOR;
39 | }
40 |
41 | int AeronVersion::patch()
42 | {
43 | return AERON_VERSION_PATCH;
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/aeron-client/src/main/cpp/AeronVersion.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | #ifndef AERON_AERON_VERSION_H
17 | #define AERON_AERON_VERSION_H
18 |
19 | #include "string"
20 | #include "util/Export.h"
21 |
22 | #ifdef major
23 | #undef major
24 | #endif
25 | #ifdef minor
26 | #undef minor
27 | #endif
28 |
29 | namespace aeron
30 | {
31 |
32 | class CLIENT_EXPORT AeronVersion
33 | {
34 | public:
35 | static std::string text();
36 | static std::string gitSha();
37 | static int major();
38 | static int minor();
39 | static int patch();
40 | };
41 |
42 | }
43 |
44 | #endif //AERON_AERON_VERSION_H
45 |
--------------------------------------------------------------------------------
/aeron-client/src/main/cpp/concurrent/NoOpIdleStrategy.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_NO_OP_IDLE_STRATEGY_H
18 | #define AERON_NO_OP_IDLE_STRATEGY_H
19 |
20 | namespace aeron { namespace concurrent {
21 |
22 | class NoOpIdleStrategy
23 | {
24 | public:
25 | NoOpIdleStrategy() = default;
26 |
27 | inline void idle(int workCount)
28 | {
29 | }
30 |
31 | inline void reset()
32 | {
33 | }
34 |
35 | inline void idle()
36 | {
37 | }
38 |
39 | private:
40 | };
41 |
42 | }}
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/aeron-client/src/main/cpp/util/Export.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | #ifndef AERON_UTIL_EXPORT_FILE_H
17 | #define AERON_UTIL_EXPORT_FILE_H
18 |
19 | #include "util/Platform.h"
20 |
21 | #ifdef AERON_COMPILER_MSVC
22 | # if defined CLIENT_SHARED
23 | # if defined DLL_EXPORT
24 | # define CLIENT_EXPORT __declspec(dllexport)
25 | # else
26 | # define CLIENT_EXPORT __declspec(dllimport)
27 | # endif
28 | # else
29 | # define CLIENT_EXPORT
30 | # endif
31 | #else
32 | # define CLIENT_EXPORT
33 | #endif
34 |
35 | #endif // AERON_UTIL_EXPORT_FILE_H
--------------------------------------------------------------------------------
/aeron-client/src/main/cpp_wrapper/concurrent/NoOpIdleStrategy.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_NO_OP_IDLE_STRATEGY_H
18 | #define AERON_NO_OP_IDLE_STRATEGY_H
19 |
20 | namespace aeron { namespace concurrent {
21 |
22 | class NoOpIdleStrategy
23 | {
24 | public:
25 | NoOpIdleStrategy() = default;
26 |
27 | inline void idle(int workCount)
28 | {
29 | }
30 |
31 | inline void reset()
32 | {
33 | }
34 |
35 | inline void idle()
36 | {
37 | }
38 |
39 | private:
40 | };
41 |
42 | }}
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/LogBuffersFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron;
17 |
18 |
19 | /**
20 | * Interface for encapsulating the strategy of mapping {@link LogBuffers} at a giving file location.
21 | */
22 | interface LogBuffersFactory
23 | {
24 | /**
25 | * Map a log file into memory and wrap each section with a {@link org.agrona.concurrent.UnsafeBuffer}.
26 | *
27 | * @param logFileName to be mapped into memory.
28 | * @return a representation of the mapped log buffer.
29 | */
30 | LogBuffers map(String logFileName);
31 | }
32 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/MappedLogBuffersFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron;
17 |
18 | /**
19 | * Default factory for mapping log buffers in the client.
20 | */
21 | class MappedLogBuffersFactory implements LogBuffersFactory
22 | {
23 | public LogBuffers map(final String logFileName)
24 | {
25 | return new LogBuffers(logFileName);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/command/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Command message codec flyweights for the communication protocol between Aeron clients and the Media Driver.
18 | */
19 | package io.aeron.command;
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/exceptions/ConcurrentConcludeException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.exceptions;
17 |
18 | /**
19 | * Conclude has been called concurrently on a Context. The caller that receives this should not close the
20 | * concluded context as it will be owned by another caller.
21 | */
22 | public class ConcurrentConcludeException extends AeronException
23 | {
24 | private static final long serialVersionUID = 684839776662091577L;
25 | }
26 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/exceptions/ConfigurationException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.exceptions;
17 |
18 | /**
19 | * Indicates an invalid configuration option has been provided.
20 | */
21 | public class ConfigurationException extends AeronException
22 | {
23 | private static final long serialVersionUID = 2545086690221965112L;
24 |
25 | /**
26 | * Construct an exception with detail for the configuration error.
27 | *
28 | * @param message detail for the configuration error.
29 | */
30 | public ConfigurationException(final String message)
31 | {
32 | super(message);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/exceptions/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Common exception used by Aeron which are all unchecked.
18 | */
19 | package io.aeron.exceptions;
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/logbuffer/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Package of classes for working with message streams encoded into the log buffers.
18 | */
19 | package io.aeron.logbuffer;
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * {@link io.aeron.Aeron} client that is used to communicate to a local Media Driver for the publication and
18 | * subscription to message streams.
19 | *
20 | * A client can be created by invoking {@link io.aeron.Aeron#connect()} for default setting or via
21 | * {@link io.aeron.Aeron#connect(io.aeron.Aeron.Context)} to override the defaults or system properties.
22 | */
23 | package io.aeron;
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/protocol/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Flyweight classes for encoding and decoding network protocol messages.
18 | */
19 | package io.aeron.protocol;
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/security/AuthenticatorSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.security;
17 |
18 | import java.util.function.Supplier;
19 |
20 | /**
21 | * Used to supply instances of {@link Authenticator}.
22 | */
23 | @FunctionalInterface
24 | public interface AuthenticatorSupplier extends Supplier
25 | {
26 | }
27 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/security/AuthorisationServiceSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.security;
17 |
18 | import java.util.function.Supplier;
19 |
20 | /**
21 | * Used to supply instances of {@link AuthorisationService}.
22 | */
23 | @FunctionalInterface
24 | public interface AuthorisationServiceSupplier extends Supplier
25 | {
26 | }
27 |
--------------------------------------------------------------------------------
/aeron-client/src/main/java/io/aeron/status/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Counters for tracking status relevant to client activity.
18 | */
19 | package io.aeron.status;
--------------------------------------------------------------------------------
/aeron-client/src/test/c/util/aeron_bitutil_test.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include
18 |
19 | extern "C"
20 | {
21 | #include "util/aeron_bitutil.h"
22 | }
23 |
24 | class BitutilTest : public testing::Test
25 | {
26 | public:
27 | BitutilTest() = default;
28 | };
29 |
30 | TEST_F(BitutilTest, shouldCountTrailingZeros64Bit)
31 | {
32 | for (uint64_t i = 0; i < 64; i++)
33 | {
34 | uint64_t value = UINT64_C(1) << i;
35 | EXPECT_EQ(aeron_number_of_trailing_zeroes_u64(value), static_cast(i));
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/aeron-client/src/test/cpp/ClientConductorFixture.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "ClientConductorFixture.h"
18 |
19 | MockClientConductorHandlers::MockClientConductorHandlers() = default;
20 |
21 | MockClientConductorHandlers::~MockClientConductorHandlers() = default;
22 |
--------------------------------------------------------------------------------
/aeron-client/src/test/cpp/concurrent/MockAtomicBuffer.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "MockAtomicBuffer.h"
18 |
19 | namespace aeron { namespace concurrent { namespace mock {
20 |
21 | MockAtomicBuffer::MockAtomicBuffer(std::uint8_t *buffer, size_t length) :
22 | AtomicBuffer(buffer, length),
23 | m_realBuffer(buffer, length)
24 | {
25 | }
26 |
27 | MockAtomicBuffer::~MockAtomicBuffer() = default;
28 |
29 | }}}
30 |
--------------------------------------------------------------------------------
/aeron-cluster/src/main/java/io/aeron/cluster/PriorityHeapTimerServiceSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.cluster;
17 |
18 | import java.util.concurrent.TimeUnit;
19 |
20 | /**
21 | * Supplies instances of the {@link PriorityHeapTimerService}.
22 | */
23 | public class PriorityHeapTimerServiceSupplier implements TimerServiceSupplier
24 | {
25 | /**
26 | * {@inheritDoc}
27 | */
28 | public TimerService newInstance(final TimeUnit timeUnit, final TimerService.TimerHandler timerHandler)
29 | {
30 | return new PriorityHeapTimerService(timerHandler);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-cluster/src/main/java/io/aeron/cluster/client/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | /**
18 | * {@link io.aeron.cluster.client.AeronCluster} clients interact with fault-tolerant services running in the cluster.
19 | */
20 | package io.aeron.cluster.client;
--------------------------------------------------------------------------------
/aeron-cluster/src/main/java/io/aeron/cluster/service/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | /**
18 | * Services implement {@link io.aeron.cluster.service.ClusteredService} and have their lifecycle managed by the
19 | * {@link io.aeron.cluster.service.Cluster}. This is where application logic is contained.
20 | */
21 | package io.aeron.cluster.service;
--------------------------------------------------------------------------------
/aeron-cluster/src/test/java/io/aeron/cluster/ClusterTestConstants.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.cluster;
17 |
18 | class ClusterTestConstants
19 | {
20 | static final String INGRESS_ENDPOINT = "localhost:20000";
21 | static final String INGRESS_ENDPOINTS = "0=" + INGRESS_ENDPOINT;
22 | static final String CLUSTER_MEMBERS =
23 | "0," + INGRESS_ENDPOINT + ",localhost:20001,localhost:20002,localhost:0,localhost:8010";
24 | static final long CATALOG_CAPACITY = 1024 * 1024;
25 | }
26 |
--------------------------------------------------------------------------------
/aeron-cluster/src/test/java/io/aeron/cluster/PriorityHeapTimerServiceClusterTimeTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.cluster;
17 |
18 | class PriorityHeapTimerServiceClusterTimeTest extends ClusterTimerTest
19 | {
20 | TimerServiceSupplier timerServiceSupplier()
21 | {
22 | return new PriorityHeapTimerServiceSupplier();
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/aeron-cluster/src/test/java/io/aeron/cluster/WheelTimerServiceClusterTimeTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.cluster;
17 |
18 | import java.util.concurrent.TimeUnit;
19 |
20 | class WheelTimerServiceClusterTimeTest extends ClusterTimerTest
21 | {
22 | TimerServiceSupplier timerServiceSupplier()
23 | {
24 | return new WheelTimerServiceSupplier(TimeUnit.MILLISECONDS, 0, 8, 128);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/aeron-cluster/src/test/resources/v1_42_x/node-state.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aeron-io/aeron/545afee9326746c2cd43ecf6ded4b07d64c7e138/aeron-cluster/src/test/resources/v1_42_x/node-state.dat
--------------------------------------------------------------------------------
/aeron-config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 | include(CMakeFindDependencyMacro)
4 | find_package(Threads)
5 | find_package(Java)
6 |
7 | include("${CMAKE_CURRENT_LIST_DIR}/aeron-targets.cmake")
8 |
9 | check_required_components(aeron)
--------------------------------------------------------------------------------
/aeron-driver/README.md:
--------------------------------------------------------------------------------
1 | Aeron Media Driver
2 | ===
3 |
4 | [](http://www.javadoc.io/doc/io.aeron/aeron-all)
5 |
6 | The media driver can run in, or out of, process with aeron clients. It is responsible for replicating publications
7 | to appear as images over a network, aka the media.
8 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/c/aeron_driver_version.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | #include "aeron_driver_version.h"
17 |
18 | const char *aeron_driver_version_text(void)
19 | {
20 | return AERON_VERSION_TXT;
21 | }
22 |
23 | const char *aeron_driver_version_git_sha(void)
24 | {
25 | return AERON_VERSION_GITSHA;
26 | }
27 |
28 | int aeron_driver_version_major(void)
29 | {
30 | return AERON_VERSION_MAJOR;
31 | }
32 |
33 | int aeron_driver_version_minor(void)
34 | {
35 | return AERON_VERSION_MINOR;
36 | }
37 |
38 | int aeron_driver_version_patch(void)
39 | {
40 | return AERON_VERSION_PATCH;
41 | }
42 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/c/aeron_driver_version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_DRIVER_VERSION_H
18 | #define AERON_DRIVER_VERSION_H
19 |
20 | #ifdef __cplusplus
21 | extern "C"
22 | {
23 | #endif
24 |
25 | const char *aeron_driver_version_text(void);
26 | const char *aeron_driver_version_git_sha(void);
27 | int aeron_driver_version_major(void);
28 | int aeron_driver_version_minor(void);
29 | int aeron_driver_version_patch(void);
30 |
31 | #ifdef __cplusplus
32 | }
33 | #endif
34 |
35 | #endif //AERON_DRIVER_VERSION_H
36 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/c/aeron_termination_validator.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | #ifndef AERON_TERMINATION_VALIDATOR_H
17 | #define AERON_TERMINATION_VALIDATOR_H
18 |
19 | #include "aeron_driver_common.h"
20 | #include "aeronmd.h"
21 |
22 | bool aeron_driver_termination_validator_default_allow(void *state, uint8_t *token_buffer, int32_t token_length);
23 | bool aeron_driver_termination_validator_default_deny(void *state, uint8_t *token_buffer, int32_t token_length);
24 |
25 | aeron_driver_termination_validator_func_t aeron_driver_termination_validator_load(const char *validator_name);
26 |
27 | #endif //AERON_TERMINATION_VALIDATOR_H
28 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/c/concurrent/aeron_logbuffer_unblocker.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_LOG_BUFFER_UNBLOCK_H
18 | #define AERON_LOG_BUFFER_UNBLOCK_H
19 |
20 | #include "util/aeron_fileutil.h"
21 | #include "concurrent/aeron_term_unblocker.h"
22 |
23 | bool aeron_logbuffer_unblocker_unblock(
24 | aeron_mapped_buffer_t *term_buffers, aeron_logbuffer_metadata_t *log_meta_data, int64_t blocked_position);
25 |
26 | #endif //AERON_LOG_BUFFER_UNBLOCK_H
27 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/c/media/aeron_timestamps.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef AERON_TIMESTAMPS_H
18 | #define AERON_TIMESTAMPS_H
19 |
20 | #include
21 | #include
22 |
23 | void aeron_timestamps_set_timestamp(
24 | struct timespec *timestamp,
25 | int32_t offset,
26 | uint8_t *frame,
27 | size_t frame_length);
28 |
29 | #endif // AERON_TIMESTAMPS_H
30 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/LossHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.driver;
17 |
18 | /**
19 | * Handler for dealing with detected loss on a message stream.
20 | */
21 | @FunctionalInterface
22 | public interface LossHandler
23 | {
24 | /**
25 | * Called when a gap in the message stream has been detected.
26 | *
27 | * @param termId for the gap
28 | * @param termOffset for the beginning of the gap
29 | * @param length of the gap
30 | */
31 | void onGapDetected(int termId, int termOffset, int length);
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/MaxMulticastFlowControlSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.driver;
17 |
18 | import io.aeron.driver.media.UdpChannel;
19 |
20 | /**
21 | * Supplier of {@link MaxMulticastFlowControl} strategy implementations.
22 | */
23 | public class MaxMulticastFlowControlSupplier implements FlowControlSupplier
24 | {
25 | /**
26 | * {@inheritDoc}
27 | */
28 | public FlowControl newInstance(final UdpChannel udpChannel, final int streamId, final long registrationId)
29 | {
30 | return new MaxMulticastFlowControl();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/MinMulticastFlowControlSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.driver;
17 |
18 | import io.aeron.driver.media.UdpChannel;
19 |
20 | /**
21 | * Supplier of {@link MinMulticastFlowControl} strategy implementations.
22 | */
23 | public class MinMulticastFlowControlSupplier implements FlowControlSupplier
24 | {
25 | /**
26 | * {@inheritDoc}
27 | */
28 | public FlowControl newInstance(final UdpChannel udpChannel, final int streamId, final long registrationId)
29 | {
30 | return new MinMulticastFlowControl();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/RetransmitSender.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.driver;
17 |
18 | /**
19 | * Handler for sending a retransmit.
20 | */
21 | @FunctionalInterface
22 | public interface RetransmitSender
23 | {
24 | /**
25 | * Called when a frame should be sent to request the retransmission of data.
26 | *
27 | * @param termId containing the data to NAK.
28 | * @param termOffset of the data to NAK.
29 | * @param length of the data to NAK.
30 | */
31 | void resend(int termId, int termOffset, int length);
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/TaggedMulticastFlowControlSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.driver;
17 |
18 | import io.aeron.driver.media.UdpChannel;
19 |
20 | /**
21 | * Supplier of {@link TaggedMulticastFlowControl} implementation strategies.
22 | */
23 | public class TaggedMulticastFlowControlSupplier implements FlowControlSupplier
24 | {
25 | /**
26 | * {@inheritDoc}
27 | */
28 | public FlowControl newInstance(final UdpChannel udpChannel, final int streamId, final long registrationId)
29 | {
30 | return new TaggedMulticastFlowControl();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/buffer/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Encapsulates the creation and management of buffers used to contain the log buffers.
18 | */
19 | package io.aeron.driver.buffer;
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/exceptions/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * {@link io.aeron.driver.MediaDriver} specific exceptions which are all unchecked.
18 | */
19 | package io.aeron.driver.exceptions;
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/ext/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Package for extending the behaviour of the driver with features such as debug endpoints and congestion control
18 | * implementations.
19 | */
20 | package io.aeron.driver.ext;
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/media/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Media, such as UDP, specific implementations used by the driver.
18 | */
19 | package io.aeron.driver.media;
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * The {@link io.aeron.driver.MediaDriver} manages sending and receiving from the underlying media and handling
18 | * request from the Aeron clients. The media driver can run in-process, or out of process, from the Aeron clients.
19 | */
20 | package io.aeron.driver;
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/reports/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Reports of driver activity such the {@link io.aeron.driver.reports.LossReport} which tracks loss per stream.
18 | */
19 | package io.aeron.driver.reports;
--------------------------------------------------------------------------------
/aeron-driver/src/main/java/io/aeron/driver/status/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Status counters that track progress or events experienced by the driver.
18 | */
19 | package io.aeron.driver.status;
--------------------------------------------------------------------------------
/aeron-driver/src/main/resources/aeron-ipc.properties:
--------------------------------------------------------------------------------
1 | aeron.ipc.mtu.length=8k
2 | aeron.threading.mode=SHARED
3 | aeron.shared.idle.strategy=spin
4 | agrona.disable.bounds.checks=true
5 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/resources/aeron-throughput.properties:
--------------------------------------------------------------------------------
1 | aeron.term.buffer.sparse.file=false
2 | aeron.mtu.length=8k
3 | aeron.ipc.mtu.length=8k
4 | aeron.socket.so_sndbuf=2m
5 | aeron.socket.so_rcvbuf=2m
6 | aeron.rcv.initial.window.length=2m
7 | agrona.disable.bounds.checks=true
8 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/resources/debug-loss-10.properties:
--------------------------------------------------------------------------------
1 | aeron.SendChannelEndpoint.supplier=io.aeron.driver.ext.DebugSendChannelEndpointSupplier
2 | aeron.ReceiveChannelEndpoint.supplier=io.aeron.driver.ext.DebugReceiveChannelEndpointSupplier
3 | aeron.debug.receive.data.loss.rate=0.10
4 | aeron.debug.receive.data.loss.seed=-1
5 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/resources/high-stream-count.properties:
--------------------------------------------------------------------------------
1 | aeron.socket.so_sndbuf=2m
2 | aeron.socket.so_rcvbuf=2m
3 | aeron.term.buffer.length=256k
4 | aeron.conductor.idle.strategy=spin
5 | aeron.term.buffer.sparse.file=true
6 | agrona.disable.bounds.checks=true
7 |
--------------------------------------------------------------------------------
/aeron-driver/src/main/resources/low-latency.properties:
--------------------------------------------------------------------------------
1 | aeron.term.buffer.sparse.file=false
2 | aeron.pre.touch.mapped.memory=true
3 | aeron.socket.so_sndbuf=2m
4 | aeron.socket.so_rcvbuf=2m
5 | aeron.rcv.initial.window.length=2m
6 | aeron.threading.mode=DEDICATED
7 | aeron.sender.idle.strategy=noop
8 | aeron.receiver.idle.strategy=noop
9 | aeron.conductor.idle.strategy=spin
10 | agrona.disable.bounds.checks=true
11 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/aeron-stat:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.AeronStat "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/aeron-stat.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.AeronStat %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/archiving-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 \
22 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 \
23 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 \
24 | io.aeron.archive.ArchivingMediaDriver "$@"
25 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/archiving-media-driver.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 ^
22 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 ^
23 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 ^
24 | io.aeron.archive.ArchivingMediaDriver %*
25 |
26 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/high-throughput-archive.properties:
--------------------------------------------------------------------------------
1 | aeron.archive.dir=../../build/archive
2 | aeron.archive.threading.mode=DEDICATED
3 | aeron.archive.file.sync.level=0
4 | aeron.archive.file.io.max.length=1m
5 | aeron.archive.segment.file.length=1g
6 | aeron.spies.simulate.connection=true
7 | aeron.threading.mode=DEDICATED
8 | aeron.term.buffer.sparse.file=false
9 | aeron.mtu.length=8k
10 | aeron.ipc.mtu.length=8k
11 | aeron.socket.so_sndbuf=2m
12 | aeron.socket.so_rcvbuf=2m
13 | aeron.rcv.initial.window.length=2m
14 | aeron.sender.idle.strategy=noop
15 | aeron.receiver.idle.strategy=noop
16 | aeron.conductor.idle.strategy=spin
17 | agrona.disable.bounds.checks=true
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/lightweight-archive.properties:
--------------------------------------------------------------------------------
1 | aeron.archive.dir=../../build/archive
2 | aeron.archive.threading.mode=SHARED
3 | aeron.archive.file.sync.level=0
4 | aeron.archive.file.io.max.length=1m
5 | aeron.spies.simulate.connection=true
6 | aeron.threading.mode=INVOKER
7 | aeron.term.buffer.sparse.file=true
8 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/logging-archiving-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java-logging" \
21 | -Daeron.event.log=all \
22 | -Daeron.event.log=admin \
23 | -Daeron.event.archive.log=all \
24 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 \
25 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 \
26 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 \
27 | ${JVM_OPTS} io.aeron.archive.ArchivingMediaDriver "$@"
28 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/logging-archiving-media-driver.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java-logging" ^
21 | -Daeron.event.log=admin ^
22 | -Daeron.event.archive.log=all ^
23 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 ^
24 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 ^
25 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 ^
26 | %JVM_OPTS% io.aeron.archive.ArchivingMediaDriver %*
27 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/recorded-basic-publisher:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 \
22 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 \
23 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 \
24 | io.aeron.samples.archive.RecordedBasicPublisher
25 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/recorded-basic-publisher.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 ^
22 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 ^
23 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 ^
24 | io.aeron.samples.archive.RecordedBasicPublisher
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/recording-replicator:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | io.aeron.samples.archive.RecordingReplicator "$@"
22 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/recording-replicator.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | io.aeron.samples.archive.RecordingReplicator %*
22 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/replayed-basic-subscriber:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 \
22 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 \
23 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 \
24 | io.aeron.samples.archive.ReplayedBasicSubscriber
25 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/replayed-basic-subscriber.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Daeron.archive.control.channel=aeron:udp?endpoint=localhost:8010 ^
22 | -Daeron.archive.replication.channel=aeron:udp?endpoint=localhost:0 ^
23 | -Daeron.archive.control.response.channel=aeron:udp?endpoint=localhost:0 ^
24 | io.aeron.samples.archive.ReplayedBasicSubscriber
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/segment-inspector:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" io.aeron.samples.archive.SegmentInspector "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/segment-inspector.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" io.aeron.samples.archive.SegmentInspector %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/archive/standard-archive.properties:
--------------------------------------------------------------------------------
1 | aeron.archive.dir=../../build/archive
2 | aeron.archive.threading.mode=SHARED
3 | aeron.archive.file.sync.level=0
4 | aeron.archive.file.io.max.length=1m
5 | aeron.spies.simulate.connection=true
6 | aeron.threading.mode=SHARED
7 | aeron.term.buffer.sparse.file=true
8 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/backlog-stat:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.BacklogStat
--------------------------------------------------------------------------------
/aeron-samples/scripts/backlog-stat.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.BacklogStat
--------------------------------------------------------------------------------
/aeron-samples/scripts/basic-publisher:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.BasicPublisher
--------------------------------------------------------------------------------
/aeron-samples/scripts/basic-publisher.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.BasicPublisher
--------------------------------------------------------------------------------
/aeron-samples/scripts/basic-subscriber:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.BasicSubscriber
--------------------------------------------------------------------------------
/aeron-samples/scripts/basic-subscriber.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.BasicSubscriber
--------------------------------------------------------------------------------
/aeron-samples/scripts/cluster/remove-namespaces:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | sudo ip netns delete ns_node0
19 | sudo ip netns delete ns_node1
20 | sudo ip netns delete ns_node2
21 | sudo ip link delete br_a
22 | sudo ip link delete br_b
23 |
24 |
25 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/cluster/script-common:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##
4 | ## Copyright 2014-2025 Real Logic Limited.
5 | ##
6 | ## Licensed under the Apache License, Version 2.0 (the "License");
7 | ## you may not use this file except in compliance with the License.
8 | ## You may obtain a copy of the License at
9 | ##
10 | ## https://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 | ##
18 |
19 | if [ -z "${JAVA_HOME}" ]; then
20 | echo "Please set the JAVA_HOME environment variable"
21 | exit 1
22 | fi
23 |
24 | VERSION=$(cat ../../../version.txt)
25 |
26 | JDK_VERSION=$(${JAVA_HOME}/bin/java -version 2>&1 | awk -F '"' '/version/ {print $2}')
27 |
28 | ADD_OPENS="--add-opens java.base/jdk.internal.misc=ALL-UNNAMED --add-opens java.base/java.util.zip=ALL-UNNAMED"
29 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-claim-ipc-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Dagrona.disable.bounds.checks=true \
22 | -Daeron.sample.messageLength=32 \
23 | ${JVM_OPTS} io.aeron.samples.EmbeddedBufferClaimIpcThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-claim-ipc-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.sample.messageLength=32 ^
23 | %JVM_OPTS% io.aeron.samples.EmbeddedBufferClaimIpcThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-dual-exclusive-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | -Dagrona.disable.bounds.checks=true \
23 | -Daeron.sample.messageLength=32 \
24 | -Daeron.sample.messages=500000000 \
25 | -Daeron.term.buffer.sparse.file=false \
26 | -Daeron.mtu.length=8k \
27 | -Daeron.socket.so_sndbuf=2m \
28 | -Daeron.socket.so_rcvbuf=2m \
29 | -Daeron.rcv.initial.window.length=2m \
30 | ${JVM_OPTS} io.aeron.samples.EmbeddedDualExclusiveThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-dual-exclusive-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | -Dagrona.disable.bounds.checks=true ^
23 | -Daeron.sample.messageLength=32 ^
24 | -Daeron.sample.messages=500000000 ^
25 | -Daeron.term.buffer.sparse.file=false ^
26 | -Daeron.mtu.length=8k ^
27 | -Daeron.socket.so_sndbuf=2m ^
28 | -Daeron.socket.so_rcvbuf=2m ^
29 | -Daeron.rcv.initial.window.length=2m ^
30 | %JVM_OPTS% io.aeron.samples.EmbeddedDualExclusiveThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-claim-ipc-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Dagrona.disable.bounds.checks=true \
22 | -Daeron.sample.messageLength=32 \
23 | -Daeron.ipc.mtu.length=8k \
24 | ${JVM_OPTS} io.aeron.samples.EmbeddedExclusiveBufferClaimIpcThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-claim-ipc-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.sample.messageLength=32 ^
23 | -Daeron.ipc.mtu.length=8k ^
24 | %JVM_OPTS% io.aeron.samples.EmbeddedExclusiveBufferClaimIpcThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-ipc-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Dagrona.disable.bounds.checks=true \
22 | -Daeron.sample.messageLength=32 \
23 | -Daeron.ipc.mtu.length=8k \
24 | ${JVM_OPTS} io.aeron.samples.EmbeddedExclusiveIpcThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-ipc-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.sample.messageLength=32 ^
23 | -Daeron.ipc.mtu.length=8k ^
24 | %JVM_OPTS% io.aeron.samples.EmbeddedExclusiveIpcThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-spied-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | -Dagrona.disable.bounds.checks=true \
23 | -Daeron.sample.messageLength=32 \
24 | -Daeron.sample.messages=500000000 \
25 | -Daeron.term.buffer.sparse.file=false \
26 | -Daeron.mtu.length=8k \
27 | -Daeron.socket.so_sndbuf=2m \
28 | -Daeron.socket.so_rcvbuf=2m \
29 | -Daeron.rcv.initial.window.length=2m \
30 | ${JVM_OPTS} io.aeron.samples.EmbeddedExclusiveSpiedThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-spied-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | -Dagrona.disable.bounds.checks=true ^
23 | -Daeron.sample.messageLength=32 ^
24 | -Daeron.sample.messages=500000000 ^
25 | -Daeron.term.buffer.sparse.file=false ^
26 | -Daeron.mtu.length=8k ^
27 | -Daeron.socket.so_sndbuf=2m ^
28 | -Daeron.socket.so_rcvbuf=2m ^
29 | -Daeron.rcv.initial.window.length=2m ^
30 | %JVM_OPTS% io.aeron.samples.EmbeddedExclusiveSpiedThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | -Dagrona.disable.bounds.checks=true \
23 | -Daeron.sample.messageLength=32 \
24 | -Daeron.sample.messages=500000000 \
25 | -Daeron.term.buffer.sparse.file=false \
26 | -Daeron.mtu.length=8k \
27 | -Daeron.socket.so_sndbuf=2m \
28 | -Daeron.socket.so_rcvbuf=2m \
29 | -Daeron.rcv.initial.window.length=2m \
30 | ${JVM_OPTS} io.aeron.samples.EmbeddedExclusiveThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | -Dagrona.disable.bounds.checks=true ^
23 | -Daeron.sample.messageLength=32 ^
24 | -Daeron.sample.messages=500000000 ^
25 | -Daeron.term.buffer.sparse.file=false ^
26 | -Daeron.mtu.length=8k ^
27 | -Daeron.socket.so_sndbuf=2m ^
28 | -Daeron.socket.so_rcvbuf=2m ^
29 | -Daeron.rcv.initial.window.length=2m ^
30 | %JVM_OPTS% io.aeron.samples.EmbeddedExclusiveThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-vectored-ipc-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | -Dagrona.disable.bounds.checks=true \
23 | -Daeron.sample.messageLength=32 \
24 | -Daeron.ipc.mtu.length=8k \
25 | ${JVM_OPTS} io.aeron.samples.EmbeddedExclusiveVectoredIpcThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-exclusive-vectored-ipc-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | -Dagrona.disable.bounds.checks=true ^
23 | -Daeron.sample.messageLength=32 ^
24 | -Daeron.ipc.mtu.length=8k ^
25 | %JVM_OPTS% io.aeron.samples.EmbeddedExclusiveVectoredIpcThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-ipc-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Dagrona.disable.bounds.checks=true \
22 | -Daeron.sample.messageLength=32 \
23 | -Daeron.ipc.mtu.length=8k \
24 | ${JVM_OPTS} io.aeron.samples.EmbeddedIpcThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-ipc-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.sample.messageLength=32 ^
23 | -Daeron.ipc.mtu.length=8k ^
24 | %JVM_OPTS% io.aeron.samples.EmbeddedIpcThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-ping-pong:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | -Dagrona.disable.bounds.checks=true \
23 | -Daeron.term.buffer.sparse.file=false \
24 | -Daeron.pre.touch.mapped.memory=true \
25 | -Daeron.sample.messageLength=32 \
26 | -Daeron.sample.messages=1000000 \
27 | -Daeron.sample.exclusive.publications=true \
28 | ${JVM_OPTS} io.aeron.samples.EmbeddedPingPong "$@"
29 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-ping-pong.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | -Dagrona.disable.bounds.checks=true ^
23 | -Daeron.pre.touch.mapped.memory=true ^
24 | -Daeron.term.buffer.sparse.file=false ^
25 | -Daeron.sample.messageLength=32 ^
26 | -Daeron.sample.messages=1000000 ^
27 | -Daeron.sample.exclusive.publications=true ^
28 | %JVM_OPTS% io.aeron.samples.EmbeddedPingPong %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-throughput:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | -Dagrona.disable.bounds.checks=true \
23 | -Daeron.sample.messageLength=32 \
24 | -Daeron.sample.messages=500000000 \
25 | -Daeron.term.buffer.sparse.file=false \
26 | -Daeron.mtu.length=8k \
27 | -Daeron.socket.so_sndbuf=2m \
28 | -Daeron.socket.so_rcvbuf=2m \
29 | -Daeron.rcv.initial.window.length=2m \
30 | ${JVM_OPTS} io.aeron.samples.EmbeddedThroughput "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/embedded-throughput.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | -Dagrona.disable.bounds.checks=true ^
23 | -Daeron.sample.messageLength=32 ^
24 | -Daeron.sample.messages=500000000 ^
25 | -Daeron.term.buffer.sparse.file=false ^
26 | -Daeron.mtu.length=8k ^
27 | -Daeron.socket.so_sndbuf=2m ^
28 | -Daeron.socket.so_rcvbuf=2m ^
29 | -Daeron.rcv.initial.window.length=2m ^
30 | %JVM_OPTS% io.aeron.samples.EmbeddedThroughput %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/error-stat:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.ErrorStat
--------------------------------------------------------------------------------
/aeron-samples/scripts/error-stat.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.ErrorStat
--------------------------------------------------------------------------------
/aeron-samples/scripts/file-receiver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.FileReceiver "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/file-receiver.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.FileReceiver %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/file-sender:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.FileSender "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/file-sender.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.FileSender %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/ipc-c-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | AERON_BUILD_DIR=../../cppbuild/Release
19 |
20 | export AERON_TERM_BUFFER_SPARSE_FILE="0"
21 | export AERON_MTU_LENGTH="8k"
22 | export AERON_THREADING_MODE="SHARED"
23 | export AERON_SHARED_IDLE_STRATEGY="spin"
24 |
25 | ${AERON_BUILD_DIR}/binaries/aeronmd
26 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/java-common.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 | @echo off
17 |
18 | if "%JAVA_HOME%" == "" (
19 | echo "Please set the JAVA_HOME environment variable"
20 | exit /b 1
21 | )
22 |
23 | set /p VERSION=<"%~dp0\..\..\version.txt"
24 |
25 | set JAVA_OPTIONS=^
26 | -XX:+UnlockExperimentalVMOptions ^
27 | -XX:+TrustFinalNonStaticFields ^
28 | -XX:+UnlockDiagnosticVMOptions ^
29 | -XX:GuaranteedSafepointInterval=300000 ^
30 | -XX:+UseParallelGC
31 |
32 | set ADD_OPENS=^
33 | --add-opens java.base/jdk.internal.misc=ALL-UNNAMED ^
34 | --add-opens java.base/java.util.zip=ALL-UNNAMED
35 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/linux-qdisc-basic:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | PORT_TO_FILTER=20121
19 |
20 | sudo tc qdisc del dev lo root
21 | sudo tc qdisc add dev lo root handle 1: prio
22 | sudo tc filter add dev lo protocol ip parent 1: prio 1 u32 match ip dport ${PORT_TO_FILTER} 0xffff match ip protocol 17 0xff flowid 1:1
23 | sudo tc qdisc add dev lo parent 1:1 handle 20: netem loss 5% delay 10ms
24 | tc qdisc show dev lo
25 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/log-inspector:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.LogInspector "$@"
--------------------------------------------------------------------------------
/aeron-samples/scripts/log-inspector.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.LogInspector %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/logging-c-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | AERON_BUILD_DIR=../../cppbuild/Release
19 |
20 | export AERON_EVENT_LOG="all"
21 |
22 | ${AERON_BUILD_DIR}/binaries/aeronmd "$@"
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/logging-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java-logging" \
21 | -Daeron.event.log=all \
22 | ${JVM_OPTS} io.aeron.driver.MediaDriver "$@"
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/logging-media-driver.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java-logging" ^
21 | -Daeron.event.log=all ^
22 | %JVM_OPTS% io.aeron.driver.MediaDriver %*
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/loss-rate-c-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | AERON_BUILD_DIR=../../cppbuild/Release
19 |
20 | export AERON_UDP_CHANNEL_INCOMING_INTERCEPTORS="loss"
21 | export AERON_UDP_CHANNEL_TRANSPORT_BINDINGS_LOSS_ARGS="rate=0.2|recv-msg-mask=0xF"
22 |
23 | ${AERON_BUILD_DIR}/binaries/aeronmd "$@"
24 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/loss-stat:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.LossStat
--------------------------------------------------------------------------------
/aeron-samples/scripts/loss-stat.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.LossStat
--------------------------------------------------------------------------------
/aeron-samples/scripts/low-latency-c-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | AERON_BUILD_DIR=../../cppbuild/Release
19 |
20 | export AERON_TERM_BUFFER_SPARSE_FILE="0"
21 | export AERON_SOCKET_SO_RCVBUF="2m"
22 | export AERON_SOCKET_SO_SNDBUF="2m"
23 | export AERON_RCV_INITIAL_WINDOW_LENGTH="2m"
24 | export AERON_THREADING_MODE="DEDICATED"
25 | export AERON_CONDUCTOR_IDLE_STRATEGY="spin"
26 | export AERON_SENDER_IDLE_STRATEGY="noop"
27 | export AERON_RECEIVER_IDLE_STRATEGY="noop"
28 | export AERON_NETWORK_PUBLICATION_MAX_MESSAGES_PER_SEND="2"
29 | export AERON_PRINT_CONFIGURATION="1"
30 |
31 | ${AERON_BUILD_DIR}/binaries/aeronmd
32 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/low-latency-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.driver.MediaDriver \
21 | low-latency.properties "$@"
22 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/low-latency-media-driver.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.driver.MediaDriver ^
21 | low-latency.properties %*
22 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.driver.MediaDriver "$@"
21 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/media-driver.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.driver.MediaDriver %*
21 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/ping:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Daeron.sample.messages=1000000 \
22 | -Daeron.sample.messageLength=32 \
23 | -Dagrona.disable.bounds.checks=true \
24 | -Daeron.pre.touch.mapped.memory=true \
25 | -Daeron.sample.exclusive.publications=true \
26 | ${JVM_OPTS} io.aeron.samples.Ping
--------------------------------------------------------------------------------
/aeron-samples/scripts/ping.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.pre.touch.mapped.memory=true ^
23 | -Daeron.sample.messages=1000000 ^
24 | -Daeron.sample.messageLength=32 ^
25 | -Daeron.sample.exclusive.publications=true ^
26 | %JVM_OPTS% io.aeron.samples.Ping
--------------------------------------------------------------------------------
/aeron-samples/scripts/pong:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Dagrona.disable.bounds.checks=true \
22 | -Daeron.pre.touch.mapped.memory=true \
23 | -Daeron.sample.exclusive.publications=true \
24 | ${JVM_OPTS} io.aeron.samples.Pong
--------------------------------------------------------------------------------
/aeron-samples/scripts/pong.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.pre.touch.mapped.memory=true ^
23 | -Daeron.sample.exclusive.publications=true ^
24 | %JVM_OPTS% io.aeron.samples.Pong
--------------------------------------------------------------------------------
/aeron-samples/scripts/rate-subscriber:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" \
21 | -Dagrona.disable.bounds.checks=true \
22 | -Daeron.sample.frameCountLimit=256 \
23 | ${JVM_OPTS} io.aeron.samples.RateSubscriber
--------------------------------------------------------------------------------
/aeron-samples/scripts/rate-subscriber.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.sample.frameCountLimit=256 ^
23 | %JVM_OPTS% io.aeron.samples.RateSubscriber
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/hack-select-receive-send-udp-pong:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | ${JVM_OPTS} io.aeron.samples.raw.HackSelectReceiveSendUdpPong "$@"
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/hack-select-receive-send-udp-pong.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | %JVM_OPTS% io.aeron.samples.raw.HackSelectReceiveSendUdpPong %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/receive-send-udp-pong:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | ${JVM_OPTS} io.aeron.samples.raw.ReceiveSendUdpPong "$@"
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/receive-send-udp-pong.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | %JVM_OPTS% io.aeron.samples.raw.ReceiveSendUdpPong %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/send-hack-select-receive-udp-ping:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | ${JVM_OPTS} io.aeron.samples.raw.SendHackSelectReceiveUdpPing "$@"
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/send-hack-select-receive-udp-ping.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | %JVM_OPTS% io.aeron.samples.raw.SendHackSelectReceiveUdpPing %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/send-receive-udp-ping:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/../run-java" \
21 | -Djava.net.preferIPv4Stack=true \
22 | ${JVM_OPTS} io.aeron.samples.raw.SendReceiveUdpPing "$@"
23 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/raw/send-receive-udp-ping.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\..\run-java" ^
21 | -Djava.net.preferIPv4Stack=true ^
22 | %JVM_OPTS% io.aeron.samples.raw.SendReceiveUdpPing %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/run-java:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | source "${DIR}/java-common"
21 |
22 | exec "${JAVA_HOME}/bin/java" \
23 | -cp "${DIR}/../../aeron-all/build/libs/aeron-all-${VERSION}.jar" \
24 | ${JAVA_OPTIONS} \
25 | ${ADD_OPENS} \
26 | ${JVM_OPTS} \
27 | "$@"
28 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/run-java-logging:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | source "${DIR}/java-common"
21 |
22 | exec "${JAVA_HOME}/bin/java" \
23 | -cp "${DIR}/../../aeron-all/build/libs/aeron-all-${VERSION}.jar" \
24 | -javaagent:"${DIR}/../../aeron-agent/build/libs/aeron-agent-${VERSION}.jar" \
25 | ${JAVA_OPTIONS} \
26 | ${ADD_OPENS} \
27 | ${JVM_OPTS} \
28 | "$@"
29 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/run-java-logging.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 | @echo off
17 | setlocal EnableExtensions EnableDelayedExpansion
18 |
19 | set "DIR=%~dp0"
20 |
21 | call "%DIR%\java-common"
22 |
23 | "%JAVA_HOME%\bin\java" ^
24 | -cp "%DIR%\..\..\aeron-all\build\libs\aeron-all-%VERSION%.jar" ^
25 | -javaagent:"%DIR%\..\..\aeron-agent\build\libs\aeron-agent-%VERSION%.jar" ^
26 | !JAVA_OPTIONS! ^
27 | !ADD_OPENS! ^
28 | %JVM_OPTS% ^
29 | %*
30 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/run-java.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 | @echo off
17 | setlocal EnableExtensions EnableDelayedExpansion
18 |
19 | set "DIR=%~dp0"
20 |
21 | call "%DIR%\java-common"
22 |
23 | "%JAVA_HOME%\bin\java" ^
24 | -cp "%DIR%\..\..\aeron-all\build\libs\aeron-all-%VERSION%.jar" ^
25 | %JAVA_OPTIONS% ^
26 | %ADD_OPENS% ^
27 | %JVM_OPTS% ^
28 | %*
29 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/show_thread_affinity.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | pname=${1:-aeronmd} # default to 'aeronmd'
6 |
7 | pid=$(pgrep "${pname}")
8 |
9 | echo "PID: ${pid} (${pname})"
10 | ps -T -o pid,tid,comm,psr -p "${pid}"
11 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/stream-stat:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.StreamStat "$@"
21 |
--------------------------------------------------------------------------------
/aeron-samples/scripts/stream-stat.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" io.aeron.samples.StreamStat %*
--------------------------------------------------------------------------------
/aeron-samples/scripts/streaming-publisher:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
19 |
20 | exec "${DIR}/run-java" io.aeron.samples.StreamingPublisher
--------------------------------------------------------------------------------
/aeron-samples/scripts/streaming-publisher.cmd:
--------------------------------------------------------------------------------
1 | ::
2 | :: Copyright 2014-2025 Real Logic Limited.
3 | ::
4 | :: Licensed under the Apache License, Version 2.0 (the "License");
5 | :: you may not use this file except in compliance with the License.
6 | :: You may obtain a copy of the License at
7 | ::
8 | :: https://www.apache.org/licenses/LICENSE-2.0
9 | ::
10 | :: Unless required by applicable law or agreed to in writing, software
11 | :: distributed under the License is distributed on an "AS IS" BASIS,
12 | :: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | :: See the License for the specific language governing permissions and
14 | :: limitations under the License.
15 | ::
16 |
17 | @echo off
18 | set "DIR=%~dp0"
19 |
20 | call "%DIR%\run-java" ^
21 | -Dagrona.disable.bounds.checks=true ^
22 | -Daeron.sample.messageLength=32 ^
23 | -Daeron.sample.messages=500000000 ^
24 | %JVM_OPTS% io.aeron.samples.StreamingPublisher
--------------------------------------------------------------------------------
/aeron-samples/scripts/throughput-c-media-driver:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ##
3 | ## Copyright 2014-2025 Real Logic Limited.
4 | ##
5 | ## Licensed under the Apache License, Version 2.0 (the "License");
6 | ## you may not use this file except in compliance with the License.
7 | ## You may obtain a copy of the License at
8 | ##
9 | ## https://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 | ##
17 |
18 | AERON_BUILD_DIR=../../cppbuild/Release
19 |
20 | export AERON_TERM_BUFFER_SPARSE_FILE="0"
21 | export AERON_MTU_LENGTH="8k"
22 | export AERON_SOCKET_SO_RCVBUF="2m"
23 | export AERON_SOCKET_SO_SNDBUF="2m"
24 | export AERON_RCV_INITIAL_WINDOW_LENGTH="2m"
25 |
26 | ${AERON_BUILD_DIR}/binaries/aeronmd
27 |
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/archive/SampleAuthenticatorSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.samples.archive;
17 |
18 | import io.aeron.security.Authenticator;
19 | import io.aeron.security.AuthenticatorSupplier;
20 |
21 | /**
22 | * Sample {@link AuthenticatorSupplier} which returns a new {@link SampleAuthenticator}.
23 | */
24 | public class SampleAuthenticatorSupplier implements AuthenticatorSupplier
25 | {
26 | /**
27 | * {@inheritDoc}
28 | */
29 | public Authenticator get()
30 | {
31 | return new SampleAuthenticator();
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/archive/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Samples for recording and replaying message streams to disk while measuring throughput.
18 | */
19 | package io.aeron.samples.archive;
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/cluster/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Samples and supporting classes for using Aeron Cluster.
18 | */
19 | package io.aeron.samples.cluster;
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/cluster/tutorial/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Samples for getting an overview of using Aeron Cluster with the basic tutorial.
18 | */
19 | package io.aeron.samples.cluster.tutorial;
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/echo/RemoveAllEchoPairs.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.samples.echo;
17 |
18 | /**
19 | * Message to remove all the echo pairs from the service.
20 | */
21 | public class RemoveAllEchoPairs extends ProvisioningMessage
22 | {
23 | }
24 |
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Samples for using the major features and measuring throughput and latency.
18 | */
19 | package io.aeron.samples;
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/raw/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * Samples for measuring the raw Java NIO and network performance.
18 | */
19 | package io.aeron.samples.raw;
--------------------------------------------------------------------------------
/aeron-samples/src/main/java/io/aeron/samples/stress/SimpleReservedValueSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.samples.stress;
17 |
18 | import io.aeron.ReservedValueSupplier;
19 | import org.agrona.DirectBuffer;
20 |
21 | class SimpleReservedValueSupplier implements ReservedValueSupplier
22 | {
23 | private long value;
24 | public long get(final DirectBuffer termBuffer, final int termOffset, final int frameLength)
25 | {
26 | return value;
27 | }
28 |
29 | ReservedValueSupplier set(final long value)
30 | {
31 | this.value = value;
32 | return this;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/aeron-system-tests/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | if (AERON_SYSTEM_TESTS)
2 | add_test(
3 | NAME java_system_tests_c_media_driver
4 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
5 | COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=$ENV{JAVA_HOME} BUILD_JAVA_HOME=$ENV{BUILD_JAVA_HOME} BUILD_JAVA_VERSION=$ENV{BUILD_JAVA_VERSION} ${GRADLE_WRAPPER} -Daeron.test.system.aeronmd.path=$ :aeron-system-tests:cleanTest :aeron-system-tests:test --no-daemon --console=plain)
6 | set_tests_properties(java_system_tests_c_media_driver PROPERTIES RUN_SERIAL TRUE)
7 | endif ()
8 |
9 | if (AERON_SLOW_SYSTEM_TESTS)
10 | add_test(
11 | NAME java_slow_system_tests_c_media_driver
12 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
13 | COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=$ENV{JAVA_HOME} BUILD_JAVA_HOME=$ENV{BUILD_JAVA_HOME} BUILD_JAVA_VERSION=$ENV{BUILD_JAVA_VERSION} ${GRADLE_WRAPPER} -Daeron.test.system.aeronmd.path=$ :aeron-system-tests:cleanSlowTest :aeron-system-tests:slowTest --no-daemon --console=plain)
14 | set_tests_properties(java_slow_system_tests_c_media_driver PROPERTIES TIMEOUT 3600)
15 | set_tests_properties(java_slow_system_tests_c_media_driver PROPERTIES RUN_SERIAL TRUE)
16 | endif ()
17 |
--------------------------------------------------------------------------------
/aeron-system-tests/README.md:
--------------------------------------------------------------------------------
1 | Aeron System Tests
2 | ===
3 |
4 | [](http://www.javadoc.io/doc/io.aeron/aeron-all)
5 |
6 | System tests which exercise end-to-end features of Aeron that act as acceptance tests for CI.
--------------------------------------------------------------------------------
/aeron-system-tests/scripts/provisioning/README.md:
--------------------------------------------------------------------------------
1 | # Remote Provisioning for Bindings Test
2 |
3 | This script use the fabric deployment tool (https://docs.fabfile.org) v2.
4 | It should be run from the root directory of the project. It will:
5 |
6 | 1. Build a copy of aeron-all-.jar
7 | 2. Copy the jar to a remote server
8 | 3. Ssh to a remote server, start an instance of the remote provision service
9 | 4. Run the RemoteEchoTest
10 | 5. Stop the service
11 |
12 | Usage
13 |
14 | ```shell
15 | $ fab -r aeron-system-tests/scripts/provisioning \
16 | -H
17 | stop \
18 | prepare-deploy \
19 | deploy \
20 | --java-home= \
21 | test \
22 | --test-host= \
23 | --aeron-dir=
24 | ```
25 |
--------------------------------------------------------------------------------
/aeron-test-support/README.md:
--------------------------------------------------------------------------------
1 | Aeron Test Support
2 | ===
3 |
4 | Utility classes and functions common to unit and system tests.
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/BindingsTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import org.junit.jupiter.api.Tag;
19 |
20 | import java.lang.annotation.ElementType;
21 | import java.lang.annotation.Retention;
22 | import java.lang.annotation.RetentionPolicy;
23 | import java.lang.annotation.Target;
24 |
25 | @Target({ ElementType.TYPE, ElementType.METHOD })
26 | @Retention(RetentionPolicy.RUNTIME)
27 | @Tag("bindings")
28 | public @interface BindingsTest
29 | {
30 | }
31 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/DisableJavaUtilLogging.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import java.util.logging.LogManager;
19 |
20 | /**
21 | * This is an implementation of the {@link LogManager} that disables java util logging completely.
22 | * In order to work it must be configured via the system property {@code java.util.logging.config.class}.
23 | */
24 | public class DisableJavaUtilLogging extends LogManager
25 | {
26 | @SuppressWarnings("this-escape")
27 | public DisableJavaUtilLogging()
28 | {
29 | reset(); // Close all logging handlers
30 | }
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/IgnoreStdErr.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import java.lang.annotation.ElementType;
19 | import java.lang.annotation.Retention;
20 | import java.lang.annotation.RetentionPolicy;
21 | import java.lang.annotation.Target;
22 |
23 | @Target({ ElementType.TYPE, ElementType.METHOD })
24 | @Retention(RetentionPolicy.RUNTIME)
25 | public @interface IgnoreStdErr
26 | {
27 | }
28 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/InterruptAfter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import java.lang.annotation.ElementType;
19 | import java.lang.annotation.Retention;
20 | import java.lang.annotation.RetentionPolicy;
21 | import java.lang.annotation.Target;
22 | import java.util.concurrent.TimeUnit;
23 |
24 | @Target({ ElementType.TYPE, ElementType.METHOD })
25 | @Retention(RetentionPolicy.RUNTIME)
26 | public @interface InterruptAfter
27 | {
28 | long value();
29 |
30 | TimeUnit unit() default TimeUnit.SECONDS;
31 | }
32 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/NullOutputStream.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import java.io.OutputStream;
19 |
20 | public class NullOutputStream extends OutputStream
21 | {
22 | public void write(final int ignore)
23 | {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/SlowTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import org.junit.jupiter.api.Tag;
19 |
20 | import java.lang.annotation.ElementType;
21 | import java.lang.annotation.Retention;
22 | import java.lang.annotation.RetentionPolicy;
23 | import java.lang.annotation.Target;
24 |
25 | @Target({ ElementType.TYPE, ElementType.METHOD })
26 | @Retention(RetentionPolicy.RUNTIME)
27 | @Tag("slow")
28 | public @interface SlowTest
29 | {
30 | }
31 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/SystemTestConfig.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | public class SystemTestConfig
19 | {
20 | public static final String DRIVER_AWAIT_COUNTER_CLOSE_PROP_NAME = "aeron.test.system.driver.await.counters";
21 | public static final boolean DRIVER_AWAIT_COUNTER_CLOSE = Boolean.getBoolean(DRIVER_AWAIT_COUNTER_CLOSE_PROP_NAME);
22 | public static final long MIN_COUNTER_CLOSE_INTERRUPT_TIMEOUT_MS = 20_000L;
23 | }
24 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/TestIdleStrategy.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2024-2025 Adaptive Financial Consulting Limited.
3 | */
4 | package io.aeron.test;
5 |
6 | import org.agrona.concurrent.IdleStrategy;
7 |
8 | public class TestIdleStrategy implements IdleStrategy
9 | {
10 | /**
11 | * Static instance to reduce allocation.
12 | */
13 | public static final TestIdleStrategy INSTANCE = new TestIdleStrategy();
14 |
15 | public void idle(final int i)
16 | {
17 | if (i == 0)
18 | {
19 | idle();
20 | }
21 | }
22 |
23 | public void idle()
24 | {
25 | Tests.yield();
26 | }
27 |
28 | public void reset()
29 | {
30 |
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/TopologyTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test;
17 |
18 | import org.junit.jupiter.api.Tag;
19 |
20 | import java.lang.annotation.ElementType;
21 | import java.lang.annotation.Retention;
22 | import java.lang.annotation.RetentionPolicy;
23 | import java.lang.annotation.Target;
24 |
25 | @Target({ ElementType.TYPE, ElementType.METHOD })
26 | @Retention(RetentionPolicy.RUNTIME)
27 | @Tag("topology")
28 | public @interface TopologyTest
29 | {
30 | }
31 |
--------------------------------------------------------------------------------
/aeron-test-support/src/main/java/io/aeron/test/driver/DriverOutputConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014-2025 Real Logic Limited.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * https://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.aeron.test.driver;
17 |
18 | import java.io.File;
19 | import java.util.Map;
20 |
21 | public interface DriverOutputConsumer
22 | {
23 | default void outputFiles(String aeronDirectoryName, File stdoutFile, File stderrFile)
24 | {
25 | }
26 |
27 | default void exitCode(String aeronDirectoryName, int exitValue, String exitMessage)
28 | {
29 | }
30 |
31 | default void environmentVariables(String aeronDirectoryName, Map environment)
32 | {
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/buildSrc/build.gradle:
--------------------------------------------------------------------------------
1 | repositories {
2 | mavenCentral()
3 | }
4 |
5 | configurations.configureEach {
6 | resolutionStrategy {
7 | failOnVersionConflict()
8 |
9 | force libs.asm,
10 | libs.asm.analysis,
11 | libs.asm.commons,
12 | libs.asm.tree,
13 | libs.asm.util
14 | }
15 | }
16 |
17 | dependencies {
18 | implementation libs.asciidoctorj
19 | implementation libs.jgit
20 | }
21 |
22 | tasks.withType(JavaCompile).configureEach {
23 | configure(options) {
24 | options.compilerArgs << '-Xlint:deprecation' << '-Xlint:unchecked' // examples
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/buildSrc/settings.gradle:
--------------------------------------------------------------------------------
1 | dependencyResolutionManagement {
2 | versionCatalogs {
3 | create("libs") {
4 | from(files("../gradle/libs.versions.toml"))
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/config/checkstyle/suppressions.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/cppbuild/HdrHistogram_c-0.11.8.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aeron-io/aeron/545afee9326746c2cd43ecf6ded4b07d64c7e138/cppbuild/HdrHistogram_c-0.11.8.zip
--------------------------------------------------------------------------------
/cppbuild/cppbuild.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | echo Building Aeron using the Window Batch script is no longer supported, use a PowerShell terminal and run cppbuild\cppbuild.ps1
4 |
--------------------------------------------------------------------------------
/cppbuild/googletest-1.14.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aeron-io/aeron/545afee9326746c2cd43ecf6ded4b07d64c7e138/cppbuild/googletest-1.14.0.zip
--------------------------------------------------------------------------------
/cppbuild/rocky-docker-build:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | if [ -z ${GCC_VERSION} ];
4 | then
5 | echo "No GCC version provided!";
6 | exit 1;
7 | else
8 | echo "GCC_VERSION=${GCC_VERSION}"
9 | fi
10 |
11 | SOURCE_DIR="$(pwd)"
12 |
13 | docker build --tag rocky8-aeron \
14 | --build-arg USER_ID="$(id -u)" \
15 | --build-arg GROUP_ID="$(id -g)" \
16 | --build-arg GCC_VERSION="${GCC_VERSION}" \
17 | --target essentials-test \
18 | "${SOURCE_DIR}/cppbuild/rocky"
19 |
20 | docker run --rm --shm-size=1G --network host \
21 | --volume="${SOURCE_DIR}":/opt/aeron \
22 | --volume="$(realpath ~/.gradle)":/home/athena/.gradle \
23 | rocky8-aeron
24 |
--------------------------------------------------------------------------------
/cppbuild/rocky/Dockerfile:
--------------------------------------------------------------------------------
1 | ARG VERSION="8.9"
2 | FROM rockylinux:${VERSION} as builder
3 |
4 | ARG GCC_VERSION="10"
5 |
6 | RUN yum update -y && yum install -y https://cdn.azul.com/zulu/bin/zulu-repo-1.0.0-1.noarch.rpm && \
7 | yum update -y && yum install -y \
8 | scl-utils \
9 | gcc-toolset-${GCC_VERSION}-gcc \
10 | gcc-toolset-${GCC_VERSION}-gcc-c++ \
11 | make \
12 | tar \
13 | zlib-devel \
14 | libuuid-devel \
15 | git \
16 | findutils \
17 | openssl-devel \
18 | zulu17-jdk
19 |
20 | ENV JAVA_HOME=/usr/lib/jvm/java-17-zulu-openjdk \
21 | BUILD_JAVA_HOME=/usr/lib/jvm/java-17-zulu-openjdk \
22 | BUILD_JAVA_VERSION=17 \
23 | GRADLE_OPTS="-Dorg.gradle.daemon=false -Dorg.gradle.java.installations.auto-detect=false -Dorg.gradle.warning.mode=fail" \
24 | GCC_VERSION=${GCC_VERSION}
25 |
26 | ARG USER_ID="1000"
27 | ARG GROUP_ID="1000"
28 | RUN groupadd --gid $GROUP_ID --non-unique --system athena
29 | RUN adduser --uid $USER_ID --system --create-home --gid $GROUP_ID athena
30 |
31 | USER athena
32 | WORKDIR /opt/aeron
33 |
34 | FROM builder as essentials-test
35 | ENTRYPOINT scl enable "gcc-toolset-${GCC_VERSION}" -- cppbuild/cppbuild --c-warnings-as-errors --cxx-warnings-as-errors --package
--------------------------------------------------------------------------------
/cppbuild/vs-helper.cmd:
--------------------------------------------------------------------------------
1 | rem Invoke script to set all of the Visual Studio ENV variables
2 | @for /f "usebackq delims=#" %%a in (`"%programfiles(x86)%\Microsoft Visual Studio\Installer\vswhere" -latest -property installationPath`) do "%%a\Common7\Tools\VsDevCmd.bat"
--------------------------------------------------------------------------------
/cppbuild/vsr.cmd:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | setlocal EnableDelayedExpansion
3 |
4 | set "DIR=%~dp0"
5 |
6 | call "%DIR%\vs-helper.cmd"
7 | if %ERRORLEVEL% neq 0 exit /b %ERRORLEVEL%
8 |
9 | %*
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.java.installations.auto-detect=false
2 | org.gradle.java.installations.auto-download=false
3 | org.gradle.java.installations.fromEnv=BUILD_JAVA_HOME
4 |
5 | org.gradle.logging.level=lifecycle
6 | org.gradle.warning.mode=all
7 |
8 | # HTTP timeouts for Gradle
9 | systemProp.org.gradle.internal.http.connectionTimeout=300000
10 | systemProp.org.gradle.internal.http.socketTimeout=300000
11 | systemProp.org.gradle.internal.repository.max.retries=1
12 | systemProp.org.gradle.internal.publish.checksums.insecure=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aeron-io/aeron/545afee9326746c2cd43ecf6ded4b07d64c7e138/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-all.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/run-ci-tests.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | if [ -z "$AERON_GITHUB_PAT" ]
4 | then
5 | echo "Please set AERON_GITHUB_PAT environment variable to contain your token"
6 | exit 1
7 | fi
8 |
9 | event_type=run-commit-tests
10 |
11 | for option in "$@"
12 | do
13 | case ${option} in
14 | -s|--slow)
15 | event_type=run-slow-tests
16 | shift
17 | ;;
18 | -c|--commit)
19 | shift
20 | ;;
21 | *)
22 | echo "$0 [-s|--slow-tests] (run slow tests) [-c|--commit] (run commit tests) default: commit tests"
23 | exit
24 | ;;
25 | esac
26 | done
27 |
28 | echo "Sending repository_dispatch, event_type: ${event_type}"
29 |
30 | curl -v -H "Accept: application/vnd.github.everest-preview+json" \
31 | -H "Authorization: token ${AERON_GITHUB_PAT}" \
32 | --request POST \
33 | --data "{\"event_type\": \"${event_type}\"}" \
34 | https://api.github.com/repos/aeron-io/aeron/dispatches
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include (
2 | 'aeron-annotations',
3 | 'aeron-client',
4 | 'aeron-driver',
5 | 'aeron-archive',
6 | 'aeron-cluster',
7 | 'aeron-agent',
8 | 'aeron-samples',
9 | 'aeron-system-tests',
10 | 'aeron-test-support',
11 | 'aeron-all')
12 |
13 |
14 |
--------------------------------------------------------------------------------
/version.txt:
--------------------------------------------------------------------------------
1 | 1.48.0-SNAPSHOT
2 |
--------------------------------------------------------------------------------