MCPcopy Index your code
hub / github.com/mosn/mosn

github.com/mosn/mosn @v1.6.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.6.1 ↗
12,691 symbols 48,475 edges 1,177 files 4,193 documented · 33%
README

MOSN logo

Build Status codecov Go Report Card license

中文

MOSN (Modular Open Smart Network) is a cloud-native network proxy written in Go language. It is open sourced by Ant Group and verified by hundreds of thousands of production containers in 11.11 global shopping festival. MOSN provides the capabilities of multiple protocol, modularity, intelligent and security. It integrates a large number of cloud-native components, and also integrates a Envoy network library, which is high-performance and easy to expand. MOSN and Istio can be integrated to build Service Mesh, and can also be used as independent L4/L7 load balancers, API gateways, cloud native Ingress, and etc.

Core capabilities

  • Istio integration
  • Integrates Istio 1.10 to run in full dynamic resource configuration mode
  • Core forwarding
  • Supports a self-contained server
  • Supports the TCP proxy
  • Supports the UDP proxy
  • Supports transparent traffic hijack mode
  • Multi-protocol
  • Supports HTTP/1.1 and HTTP/2
  • Supports protocol extension based on XProtocol framework
  • Supports protocol automatic identification
  • Supports gRPC
  • Core routing
  • Supports virtual host-based routing
  • Supports headers/URL/prefix/variable/dsl routing
  • Supports redirect/direct response/traffic mirror routing
  • Supports host metadata-based subset routing
  • Supports weighted routing.
  • Supports retries and timeout configuration
  • Supports request and response headers to add/remove
  • Back-end management & load balancing
  • Supports connection pools
  • Supports persistent connection's heart beat handling
  • Supports circuit breaker
  • Supports active back-end health check
  • Supports load balancing policies: random/rr/wrr/edf
  • Supports host metadata-based subset load balancing policies
  • Supports different cluster types: original dst/dns/simple
  • Supports cluster type extension
  • Observability
  • Support trace module extension
  • Integrates jaeger/skywalking
  • Support metrics with prometheus style
  • Support configurable access log
  • Support admin API extension
  • Integrates Holmes to automatic trigger pprof
  • TLS
  • Support multiple certificates matches, and TLS inspector mode.
  • Support SDS for certificate get and update
  • Support extensible certificate get, update and verify
  • Support CGo-based cipher suites: SM3/SM4
  • Process management
  • Supports hot upgrades
  • Supports graceful shutdown
  • Extension capabilities
  • Supports go-plugin based extension
  • Supports process based extension
  • Supports WASM based extension
  • Supports custom extensions configuration
  • Supports custom extensions at the TCP I/O layer and protocol layer

Download&Install

Use go get -u mosn.io/mosn, or you can git clone the repository to $GOPATH/src/mosn.io/mosn.

Documentation

Contributing

See our contributor guide.

Partners

Partners participate in MOSN co-development to make MOSN better.

End Users

The MOSN users. Please leave a comment here to tell us your scenario to make MOSN better!

Ecosystem

The MOSN community actively embraces the open source ecosystem and has established good relationships with the following open source communities.

Community

See our community materials on https://github.com/mosn/community.

Visit the MOSN website for more information on working groups, roadmap, community meetings, MOSN tutorials, and more.

Scan the QR code below with DingTalk(钉钉) to join the MOSN user group.

Community meeting

MOSN community holds regular meetings.

Landscapes

  

MOSN enriches the CNCF CLOUD NATIVE Landscape.

Extension points exported contracts — how you extend this code

RequestHandler (Interface)
RequestHandler handle a HTTP request [8 implementers]
istio/_istio152/istio/control/http/request_handler.go
RequestHandler (Interface)
RequestHandler handle a HTTP request [8 implementers]
istio/istio1106/istio/control/http/request_handler.go
Service (Interface)
Service is a service that Implemented by plugin main process [15 implementers]
pkg/plugin/plugin.go
HealthCheckLog (Interface)
HealthCheckCb is the health check's callback function [13 implementers]
pkg/types/healthcheck.go
Bag (Interface)
Bag is a generic mechanism to access a set of attributes. [32 implementers]
pkg/cel/attribute/bag.go
ConfigHooks (Interface)
ConfigHooks is a set of functions used to make a tls config [6 implementers]
pkg/mtls/types.go
WeightItem (Interface)
(no doc) [11 implementers]
pkg/upstream/cluster/edf.go
ProxyProtocolWrapper (Interface)
(no doc) [27 implementers]
pkg/protocol/xprotocol/wasm/factory.go

Core symbols most depended-on inside this repo

Errorf
called by 2647
pkg/log/proxylog.go
New
called by 707
pkg/types/buffer.go
Fatalf
called by 689
pkg/log/proxylog.go
Error
called by 658
pkg/mtls/crypto/tls/alert.go
Equal
called by 544
istio/istio1106/filter/stream/rbac/common/matcher.go
Call
called by 456
pkg/plugin/plugin.go
Close
called by 415
pkg/server/types.go
String
called by 397
test/lib/types/stats.go

Shape

Method 6,728
Function 3,933
Struct 1,678
Interface 188
TypeAlias 104
FuncType 47
Class 13

Languages

Go100%
Java1%
Python1%

Modules by API surface

pkg/mock/upstream.go244 symbols
istio/istio1106/mixer/v1/mixer.pb.go196 symbols
pkg/mock/api_route.go194 symbols
pkg/module/http2/server_test.go184 symbols
pkg/module/http2/transport_test.go167 symbols
pkg/mock/wasm.go158 symbols
istio/istio1106/mixer/v1/attributes.pb.go143 symbols
pkg/mock/stream.go142 symbols
istio/istio1106/mixer/v1/config/client/quota.pb.go138 symbols
istio/istio1106/mixer/v1/config/client/api_spec.pb.go128 symbols
pkg/module/http2/transport.go124 symbols
pkg/module/http2/server.go121 symbols

Dependencies from manifests, versioned

github.com/HdrHistogram/hdrhistogram-gov1.1.2 · 1×
github.com/Shopify/saramav1.19.0 · 1×
github.com/SkyAPM/go2skyv0.5.0 · 1×
github.com/StackExchange/wmiv0.0.0-2019052321331 · 1×
github.com/alibaba/sentinel-golangv1.0.2-0.20210112133 · 1×
github.com/andybalholm/brotliv1.0.4 · 1×
github.com/antlr/antlr4v0.0.0-2020050319591 · 1×
github.com/apache/dubbo-go-hessian2v1.10.2 · 1×
github.com/apache/thriftv0.13.0 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/c2h5oh/datasizev0.0.0-2017122719175 · 1×

For agents

$ claude mcp add mosn \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact