SeaQL/seaography has 536 GitHub stars and 65 forks. Star changes are not measured yet. Last checked 2026-11-09 12:53 UTC. Last push 2026-06-18.
🧭 A GraphQL framework for Rust
できること
- Rich types support (e.g. DateTime, Decimal)
- Relational query (1-to-1, 1-to-N, M-to-N)
- Offset-based and cursor-based pagination
- Filtering with operators (e.g. gt, lt, eq)
計測したスター増加
- 24時間
- 更新が遅れています
- 7日間
- 更新が遅れています
- 15日間
- 更新が遅れています
- 1か月
- 更新が遅れています
期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。
README.md
オリジナルSeaography
Introduction
Seaography is a powerful and extensible GraphQL framework for Rust that bridges SeaORM and async-graphql, turning your database schema into a fully-typed GraphQL API with minimal effort. By leveraging async-graphql's dynamic schema engine, Seaography avoids the heavy code generation of static approaches, resulting in faster compile times. The generated schema stays in sync with your SeaORM entities, while still giving you full control to extend and customize it.
With Seaography you can focus on application logic instead of boilerplate. It enables you to:
- Expose a complete GraphQL schema directly from your SeaORM entities, including filters, pagination, and nested relations
- Use derive macros to define custom input/output objects, queries, and mutations, and seamlessly mix them with SeaORM models
- Generate ready-to-run GraphQL servers via the included CLI, supporting different web frameworks out of the box
- Use RBAC, guards, and lifecycle hooks to implement authorization and custom business logic
Supported technologies
Databases
Seaography is built on top of SeaORM, so it supports:
- MySQL, PostgreSQL and SQLite
- SQL Server (via SeaORM X)
Web framework
It's easy to integrate Seaography with any web framework, and we ship with the following examples out-of-the-box:
SeaORM Version Compatibility
| Seaography | SeaORM |
|---|---|
| 2.0 | 2.0 |
| 1.1 | 1.1 |
Features
- Rich types support (e.g. DateTime, Decimal)
- Relational query (1-to-1, 1-to-N, M-to-N)
- Offset-based and cursor-based pagination
- Filtering with operators (e.g. gt, lt, eq)
- Filter by related entities
- Order by any column
- Mutations (create, update, delete)
- Guards and Filters on entity to restrict access
- Choose between camel or snake case field names
Extensible
Seaography is also completely extensible. It offers:
- Extensive configuration options in schema builder
- Lifecycle hooks for custom resolver logic
- Add custom queries & mutations with derive macros
Quick start - ready to serve in 3 minutes!
Install
cargo install sea-orm-cli@^2.0.0-rc # used to generate entities
cargo install seaography-cli@^2.0.0-rc
MySQL
Setup the sakila sample database.
Then regenerate example project like below, or simply do cargo run.
cd examples/mysql
sea-orm-cli generate entity -o src/entities -u mysql://user:[email protected]/sakila --seaography
seaography-cli -o ./ -e src/entities -u mysql://user:[email protected]/sakila seaography-mysql-example
cargo run
Postgres
Setup the sakila sample database.
Then regenerate example project like below, or simply do cargo run.
cd examples/postgres
sea-orm-cli generate entity -o src/entities -u postgres://user:pw@localhost/sakila --seaography
seaography-cli -o ./ -e src/entities -u postgres://user:pw@localhost/sakila seaography-postgres-example
cargo run
SQLite
sakila.db is shipped with this repository. You don't have to setup anything, simply do cargo run.
cd examples/sqlite
sea-orm-cli generate entity -o src/entities -u sqlite://sakila.db --seaography
seaography-cli -o ./ -e src/entities -u sqlite://sakila.db seaography-sqlite-example
cargo run
Quick Demo
Go to http://localhost:8000/ and try out the following queries:
Fetch films and their actors
{
film(pagination: { page: { limit: 10, page: 0 } }, orderBy: { title: ASC }) {
nodes {
title
description
releaseYear
actor {
nodes {
firstName
lastName
}
}
}
}
}
Fetch store and its employee
{
store(filters: { storeId: { eq: 1 } }) {
nodes {
storeId
address {
address
address2
}
staff {
firstName
lastName
}
}
}
}
Fetch inactive customers with pagination
{
customer(
filters: { active: { eq: 0 } }
pagination: { page: { page: 2, limit: 3 } }
) {
nodes {
customerId
lastName
email
}
paginationInfo {
pages
current
}
}
}
The query above using cursor pagination
{
customer(
filters: { active: { eq: 0 } }
pagination: { cursor: { limit: 3, cursor: "Int[3]:271" } }
) {
nodes {
customerId
lastName
email
}
pageInfo {
hasPreviousPage
hasNextPage
endCursor
}
}
}
Complex query with filters on relations
Find all inactive customers, include their address, and their payments with amount greater than 7 ordered by amount the second result
{
customer(
filters: { active: { eq: 0 } }
pagination: { cursor: { limit: 3, cursor: "Int[3]:271" } }
) {
nodes {
customerId
lastName
email
address {
address
}
payment(
filters: { amount: { gt: "7" } }
orderBy: { amount: ASC }
pagination: { page: { limit: 1, page: 1 } }
) {
nodes {
paymentId
amount
}
paginationInfo {
pages
current
}
pageInfo {
hasPreviousPage
hasNextPage
}
}
}
pageInfo {
hasPreviousPage
hasNextPage
endCursor
}
}
}
Filter using MySQL / Postgres enum
{
film(
filters: { rating: { eq: NC17 } }
pagination: { page: { page: 1, limit: 5 } }
) {
nodes {
filmId
title
rating
}
}
}
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
We invite you to participate, contribute and together help build Rust's future.
Mascot
A friend of Ferris, Terres the hermit crab is the official mascot of SeaORM. His hobby is collecting shells.
関連プロジェクトを探す
Asabeneh/30-Days-Of-Python
30 Days of Python プログラミングチャレンジは、Python プログラミング言語を 30 日で学ぶためのステップバイステップのガイドです。このチャレンジは 100 日以上かかることもあります。自分のペースで進めてください。こちらの動画も役立つかもしれません: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,486 スターgrafana/grafana
オープンで組み合わせ可能なオブザーバビリティおよびデータ可視化プラットフォームです。Prometheus、Loki、Elasticsearch、InfluxDB、Postgres など、複数のソースからメトリクス、ログ、トレースを可視化できます。
77,790 スターredis/redis
リアルタイムのデータ駆動型アプリケーションを構築する開発者にとって、Redis は最も選ばれ、最速で、機能が最も豊富なキャッシュ、データ構造サーバー、ドキュメントおよびベクトルクエリエンジンです。
77,332 スターapache/superset
Apache Superset は、データ可視化とデータ探索のためのプラットフォームです。
75,455 スター