# teo **Repository Path**: steeed/teo ## Basic Information - **Project Name**: teo - **Description**: 以结构为核心的新一代网络框架,支持Node.js、Python和Rust。能为前端生成请求包,大大节省开发时间。 - **Primary Language**: Rust - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://teocloud.io - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 15 - **Created**: 2024-03-11 - **Last Updated**: 2024-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Teo



Schema-centered next-generation web framework for Rust, Node.js and Python.

Quickstart   •   Official website   •   Docs   •   Blog   •   Discord

## Introduction Teo is a **schema-centered** next-generation web framework for Rust, Node.js and Python. ## Highlights & Features * Innovative schema definition inspired by GraphQL and Prisma * Auto database migration * Supports Rust, Node.js and Python * Supports MySQL, PostgreSQL, SQLite and MongoDB * Generated ORM types and interfaces * Generated query clients for frontend * Very efficient and performant * Data sanitization, transformation and validation * Builtin user sessions * Builtin permission check * First in last out middlewares * Custom routes and handlers ## Getting started The fastest way to get started with Teo is by following the [Quickstart guide](https://docs.teocloud.io/getting-started/quickstart). ### Installation Install Node.js edition. ```sh npm install @teocloud/teo ``` Install Python edition. ```sh pip install teo ``` Install Rust edition. ```sh cargo install teo ``` ### Write a schema-only server To write a server is quite simple with Teo. Create a file named `schema.teo`. Specify which database to connect and which port to listen. ```teo connector { provider: .sqlite, url: "sqlite::memory:" } server { bind: ("0.0.0.0", 5050) } model User { @id @autoIncrement @readonly id: Int @unique @onSet($if($presents, $isEmail)) email: String name: String? @relation(fields: .id, references: .authorId) posts: Post[] } model Post { @id @autoIncrement @readonly id: Int title: String content: String? @default(false) published: Bool @foreignKey authorId: Int @relation(fields: .authorId, references: .id) author: User } ``` Start the server with `teo serve` command. Now you can create, update, delete, read, aggregate and group by. Read our [Query client guide](https://docs.teocloud.io/guides/query-client-guides/crud) for detailed usage. ## Tutorials We prepared a [Beginner tutorial series](https://docs.teocloud.io/getting-started/beginner-tutorial/write-a-schema-only-app) to help you learn and understand Teo. ## Issues Welcome to submit issues in this repo. ## License TEO is under Apache 2.0 license.