Apache License 2.0

项目介绍

mosn/layotto 是一个托管在 GitHub 上的开源项目,主要使用 Go 编写,采用 Apache License 2.0 许可证,目前获得 851 个 Star、168 次 Fork。

仓库全名
mosn/layotto
开源许可证
Apache License 2.0
Star 数
851
Fork 数
168
未关闭 Issue
40

README 摘要

Layotto (L8): To be the next layer of OSI layer 7 查看中文版本 Layotto(/leɪˈɒtəʊ/) is an application runtime developed using Golang, which provides various distributed capabilities for applications, such as state management, configuration management, and event pub/sub capabilities to simplify application development. Layotto is built on the open source data plane MOSN .In addition to providing distributed building blocks,…

完整内容见 GitHub 原始 README 或本页 。

常见问题

layotto 用什么语言开发?

主要使用 Go 编写,采用 Apache License 2.0 许可证,目前有 851 个 Star。

layotto 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 layotto 的源码?

可以直接克隆仓库:git clone https://github.com/mosn/layotto.git,默认分支为 main;安装与运行步骤见仓库 README。

layotto 最近还在维护吗?

仓库最近一次更新为 4 天前,当前有 40 个未关闭 Issue;Star 数为 851,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

A fast and efficient cloud native application runtime

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1214
价值分
561
活跃状态
活跃

语言占比

Dockerfile
Go
Go Template
Makefile
Shell

Release

README

Layotto (L8): To be the next layer of OSI layer 7

Layotto Env Pipeline 🌊 Layotto Dev Pipeline 🌊

GoDoc Go Report Card codecov Average time to resolve an issue

查看中文版本

Layotto(/leɪˈɒtəʊ/) is an application runtime developed using Golang, which provides various distributed capabilities for applications, such as state management, configuration management, and event pub/sub capabilities to simplify application development.

Layotto is built on the open source data plane MOSN .In addition to providing distributed building blocks, Layotto can also serve as the data plane of Service Mesh and has the ability to control traffic.

Motivation

Layotto aims to combine Multi-Runtime with Service Mesh into one sidecar. No matter which product you are using as the Service Mesh data plane (e.g. MOSN,Envoy or any other product), you can always attach Layotto to it and add Multi-Runtime capabilities without adding new sidecars.

For example, by adding Runtime capabilities to MOSN, a Layotto process can both serve as the data plane of istio and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)

In addition, we were surprised to find that a sidecar can do much more than that. We are trying to make Layotto even the runtime container of FaaS (Function as a service) with the magic power of WebAssembly .

Features

Project Architecture

As shown in the architecture diagram below, Layotto uses the open source MOSN as the base to provide network layer management capabilities while providing distributed capabilities. The business logic can directly interact with Layotto through a lightweight SDK without paying attention to the specific back-end infrastructure.

Layotto provides SDKs in various languages. The sdk interacts with Layotto through grpc. Application developers only need to specify their own infrastructure type through the configuration file configure file provided by Layotto. No coding changes are required, which greatly improves the portability of the program.

Quickstarts

Get started with Layotto

You can try the quickstart demos below to get started with Layotto. In addition, you can experience the online laboratory

API

API status quick start desc
State ✅ demo Write/Query the data of the Key/Value model
Pub/Sub ✅ demo Publish/Subscribe message through various Message Queue
Service Invoke ✅ demo Call Service through MOSN (another istio data plane)
Config ✅ demo Write/Query/Subscribe the config through various Config Center
Lock ✅ demo Distributed lock API
Sequencer ✅ demo Generate distributed unique and incremental ID
File ✅ TODO File API implementation
Binding ✅ TODO Transparent data transmission API

Service Mesh

feature status quick start desc
istio ✅ demo As the data plane of istio

Extendability

feature status quick start desc
API plugin ✅ demo You can add your own API !

Actuator

feature status quick start desc
Health Check ✅ demo Query health state of app and components in Layotto
Metadata Query ✅ demo Query metadata in Layotto/app

Traffic Control

feature status quick start desc
TCP Copy ✅ demo Dump the tcp traffic received by Layotto into local file system
Flow Control ✅ demo limit access to the APIs provided by Layotto

Write your bussiness logic using WASM

feature status quick start desc
Go (TinyGo) ✅ demo Compile Code written by TinyGo to *.wasm and run in Layotto
Rust ✅ demo Compile Code written by Rust to *.wasm and run in Layotto
AssemblyScript ✅ demo Compile Code written by AssemblyScript to *.wasm and run in Layotto

As a FaaS(Serverless) runtime (Layotto + WebAssembly + k8s)

feature status quick start desc
Go (TinyGo) ✅ demo Compile Code written by TinyGo to *.wasm and run in Layotto And Scheduled by k8s.
Rust ✅ demo Compile Code written by Rust to *.wasm and run in Layotto And Scheduled by k8s.
AssemblyScript ✅ demo Compile Code written by AssemblyScript to *.wasm and run in Layotto And Scheduled by k8s.

Presentations

Landscapes

  

Layotto enriches the CNCF CLOUD NATIVE Landscape.

Community

Contact Us

Platform Link
💬 DingTalk (preferred) Search the group number: 31912621 or scan the QR code below

How to contribute

Where to start? Check “Community tasks” list!

As a programming enthusiast , have you ever felt that you want to participate in the development of an open source project, but don’t know where to start? In order to help everyone better participate in open source projects, our community will regularly publish community tasks to help everyone learn by doing!

Document Contribution Guide

Component Development Guide

Layotto Github Workflows

Layotto Commands Guide

Layotto Contributor Guide

Contributors

Thank y’all!

Design Documents

Actuator Design Doc

Configuration API with Apollo

Pubsub API and Compability with Dapr Component

RPC Design Doc

Distributed Lock API Design

FaaS Design

FAQ

Difference with dapr?

dapr is an excellent Runtime product, but it lacks the ability of Service Mesh, which is necessary for the Runtime product used in production environment, so we hope to combine Runtime with Service Mesh into one sidecar to meet more complex production requirements.

评论

暂无评论