A real database client
for phone and tablet.

폰과 태블릿을 위한
진짜 DB 클라이언트.

Rowsel is a mobile-first database client backed by a Rust execution proxy. Browse schemas, run read-only SQL, and keep credentials on your device.

Rowsel은 Rust 실행 프록시를 갖춘 모바일 우선 데이터베이스 클라이언트입니다. 스키마를 탐색하고, 읽기 전용 SQL을 실행하고, 자격 증명은 기기에 보관하세요.

postgres-firstPostgres 우선 read-only by default기본 읽기 전용 self-hostable자가 호스팅 가능

// features

// 기능

Everything a DB client needs, sized for a small screen.

DB 클라이언트에 필요한 모든 것, 작은 화면에 맞게.

01

Mobile-native DataGrid

모바일 네이티브 DataGrid

A virtualized, paged result grid designed for thumb and tablet scrolling — not a desktop table crammed into a phone.

가상화·페이징된 결과 그리드 — 데스크톱 표를 폰에 욱여넣지 않고 엄지·태블릿 스크롤에 맞게 설계했습니다.

02

Rust execution proxy

Rust 실행 프록시

A high-performance proxy on axum · sqlx · russh mediates every connection, offloading the device's battery and network.

axum · sqlx · russh 기반 고성능 프록시가 모든 연결을 중계해 기기의 배터리와 네트워크를 오프로딩합니다.

03

Read-only by default

기본 읽기 전용

SQL is parsed and classified so only reads run — wrapped in a READ ONLY transaction with forced LIMIT and timeouts.

SQL을 파싱·분류해 읽기만 실행하며, READ ONLY 트랜잭션 안에서 강제 LIMIT·타임아웃과 함께 돌립니다.

04

Credentials stay on device

자격 증명은 기기에

Secrets live in secure device storage and travel with each request. The proxy passes them through — it never stores them.

비밀은 기기 보안 저장소에 보관되어 요청마다 전달됩니다. 프록시는 통과시킬 뿐, 저장하지 않습니다.

05

Schema explorer & history

스키마 탐색기 & 기록

Drill schema → table → data, and re-run any past query with a single tap from your history.

스키마 → 테이블 → 데이터로 드릴인하고, 지난 쿼리를 기록에서 한 번에 다시 실행하세요.

06

SSH tunnel & self-host

SSH 터널 & 자가 호스팅

Reach private databases through a bastion, and self-host the whole proxy from a single container.

바스티온을 통해 사설 DB에 접근하고, 컨테이너 하나로 프록시 전체를 직접 호스팅하세요.


// architecture

// 아키텍처

How it works

동작 방식

Your encrypted credentials travel with each request over HTTPS to a Rust proxy that enforces policy, then on to your Postgres — directly or through an SSH bastion.

암호화된 자격 증명이 요청마다 HTTPS로 정책을 강제하는 Rust 프록시까지 전달되고, 거기서 Postgres로 — 직접 또는 SSH 바스티온을 거쳐 — 이어집니다.

device기기

Phone & tablet

폰 & 태블릿

  • encrypted credentials
  • secure device storage
  • thumb-first UI
  • 암호화된 자격 증명
  • 기기 보안 저장소
  • 엄지 우선 UI
rust proxyrust 프록시

Execution proxy

실행 프록시

  • read-only policy
  • paging & LIMIT
  • statement timeouts
  • error normalization
  • 읽기 전용 정책
  • 페이징 & LIMIT
  • 구문 타임아웃
  • 에러 정규화
your data내 데이터

Your Postgres

내 Postgres

  • direct connection
  • SSH tunnel / bastion
  • adapter-extensible
  • 직접 연결
  • SSH 터널 / 바스티온
  • 어댑터 확장 가능

// the problem

// 문제

Mobile database access is awkward and unsafe.

모바일에서 DB 접근은 불편하고 위험합니다.

Desktop clients weren't built for thumbs. And pointing a phone straight at production means raw credentials on the device, no guardrails, and one fat-fingered UPDATE away from disaster.

데스크톱 클라이언트는 손가락 터치를 염두에 두고 만들어지지 않았습니다. 게다가 폰을 프로덕션에 곧장 연결하면 기기에 원본 자격 증명이 남고, 가드레일도 없고, 잘못 누른 UPDATE 한 번이면 재앙입니다.

01

Desktop tables, jammed into a phone

폰에 욱여넣은 데스크톱 표

Pinch-zooming a thousand-column grid on the train isn't a workflow.

지하철에서 천 컬럼짜리 그리드를 핀치 줌 하는 건 워크플로가 아닙니다.

02

Credentials and queries, unguarded

무방비 상태의 자격 증명과 쿼리

Direct connections mean stored secrets and unbounded writes on a device you might lose.

직접 연결은 잃어버릴 수도 있는 기기에 비밀을 저장하고 무제한 쓰기를 허용한다는 뜻입니다.

Rowsel puts a proxy in between

Rowsel은 사이에 프록시를 둡니다

A Rust execution proxy mediates every connection — offloading work, enforcing read-only policy, and keeping secrets on the device.

Rust 실행 프록시가 모든 연결을 중계하여 작업을 오프로딩하고, 읽기 전용 정책을 강제하며, 비밀은 기기에 남깁니다.


// security

// 보안

Safe to point at production.

프로덕션에 연결해도 안전합니다.

Read-only isn't a setting you remember to flip — it's enforced in the proxy, on every request, by default.

읽기 전용은 깜빡하고 켜는 설정이 아닙니다 — 프록시에서 모든 요청마다 기본으로 강제됩니다.

on_device

Credentials never leave the device

자격 증명은 기기를 떠나지 않습니다

Stored in the OS secure enclave; passed per-request, never persisted by the proxy.

OS 보안 영역에 저장되어 요청마다 전달되며, 프록시는 절대 저장하지 않습니다.

ast_classify

Read-only AST classification

읽기 전용 AST 분류

Statements are parsed and classified, then run inside BEGIN READ ONLY.

구문을 파싱·분류한 뒤 BEGIN READ ONLY 안에서 실행합니다.

bounded

Forced page size & statement timeout

강제 페이지 크기 & 구문 타임아웃

Every query is capped and time-boxed, so a stray scan can't take a database down.

모든 쿼리가 상한과 시간 제한을 가져, 잘못된 스캔이 DB를 멈추게 할 수 없습니다.

no_row_logs

Result rows aren't logged by default

결과 행은 기본적으로 로깅되지 않습니다

The proxy moves data through; it doesn't keep your rows in logs.

프록시는 데이터를 통과시킬 뿐, 행을 로그에 남기지 않습니다.

cloud_neutral

Cloud-neutral self-hosting

클라우드 중립 자가 호스팅

Run the OCI image anywhere — your VPC, your rules, no vendor in the path.

OCI 이미지를 어디서나 실행하세요 — 당신의 VPC, 당신의 규칙, 중간 벤더 없음.

self_hosted

You run it, you own it

직접 호스팅, 직접 소유

Run the proxy inside your own network — your data and credentials never route through a third party.

프록시를 당신의 네트워크에서 직접 실행하세요 — 데이터와 자격 증명이 제3자를 거치지 않습니다.


// built with

// 기술 스택

The stack underneath.

그 아래의 스택.

Flutter Rust PostgreSQL Kubernetes