newDynamicModule(const std::filesystem::path& object_file_absolute_path, const bool do_not_close,
// So we can use RTLD_NOLOAD to check if the module is already loaded to avoid the duplicate call
if (absl::string_view(abi_version) != absl::string_view(ENVOY_DYNAMIC_MODULES_ABI_VERSION)) {
ENVOY_LOG_TO_LOGGER(Envoy::Logger::Registry::getLog(Envoy::Logger::Id::dynamic_modules), info,
// TODO(mathetake): maybe we should accept null-terminated const char* instead of string_view to
return std::filesystem::temp_directory_path() / fmt::format("envoy_dynamic_module_{}.so", sha256);
absl::StatusOr<DynamicModulePtr> newDynamicModuleFromBytes(const absl::string_view module_bytes,
if (absl::string_view(abi_version) != absl::string_view(ENVOY_DYNAMIC_MODULES_ABI_VERSION)) {
ENVOY_LOG_TO_LOGGER(Envoy::Logger::Registry::getLog(Envoy::Logger::Id::dynamic_modules), info,