// Copyright (c) 2022 Alibaba Group Holding Ltd. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package suite import "istio.io/istio/pkg/util/sets" type SupportedFeature string const ( // core: http HTTPConformanceFeature SupportedFeature = "http" // extended: extensibility WASMGoConformanceFeature SupportedFeature = "wasm-go" WASMCPPConformanceFeature SupportedFeature = "wasm-cpp" WASMRustConformanceFeature SupportedFeature = "wasm-rust" // extended: service discovery DubboConformanceFeature SupportedFeature = "dubbo" EurekaConformanceFeature SupportedFeature = "eureka" ConsulConformanceFeature SupportedFeature = "consul" NacosConformanceFeature SupportedFeature = "nacos" // extended: envoy config EnvoyConfigConformanceFeature SupportedFeature = "envoy-config" ) var WasmPluginTypeMap = map[string]SupportedFeature{ "": WASMGoConformanceFeature, // default "GO": WASMGoConformanceFeature, "CPP": WASMCPPConformanceFeature, "RUST": WASMRustConformanceFeature, } var AllFeatures = sets.Set[string]{}. Insert(string(HTTPConformanceFeature)). Insert(string(DubboConformanceFeature)). Insert(string(EurekaConformanceFeature)). Insert(string(ConsulConformanceFeature)). Insert(string(NacosConformanceFeature)). Insert(string(EnvoyConfigConformanceFeature)) var ExperimentFeatures = sets.Set[string]{}. Insert(string(WASMGoConformanceFeature)). Insert(string(WASMCPPConformanceFeature)). Insert(string(WASMRustConformanceFeature))