mosn

module
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2023 License: Apache-2.0

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.

Directories

Path Synopsis
cmd
examples
codes/trace/skywalking-plugin/plugins
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
istio
_istio152/filter/stream/jwtauthn
Package jwtauthn is a generated GoMock package.
Package jwtauthn is a generated GoMock package.
istio1106/filter/stream/jwtauthn
Package jwtauthn is a generated GoMock package.
Package jwtauthn is a generated GoMock package.
istio1106/filter/stream/rbac/common
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
pkg
cel
filter/network/tunnel
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
log
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
module/http2
Package http2 implements the HTTP/2 protocol.
Package http2 implements the HTTP/2 protocol.
module/http2/h2c
Package h2c implements the unencrypted "h2c" form of HTTP/2.
Package h2c implements the unencrypted "h2c" form of HTTP/2.
module/http2/h2i
The h2i command is an interactive HTTP/2 console.
The h2i command is an interactive HTTP/2 console.
module/http2/hpack
Package hpack implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/2.
Package hpack implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/2.
moe
mtls/certtool
Package certtool used for generate certificate for test/examples By default, use CreateTemplate, GeneratePrivateKey, and SignCertificate, the certificates created in same process have same root ca
Package certtool used for generate certificate for test/examples By default, use CreateTemplate, GeneratePrivateKey, and SignCertificate, the certificates created in same process have same root ca
mtls/crypto/tls
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
shm
stream/connpool/msgconnpool
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
upstream/healthcheck
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
upstream/servicediscovery/dubbod
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
wasm
Package wasm implement the wasm framework for MOSN
Package wasm implement the wasm framework for MOSN
test
lib

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL