Rust로 작성된 gluesql 프로젝트 관련 포스팅

gluesql/gluesql: GlueSQL is quite sticky, it attaches to anywhere. (github.com)

 

Rust를 할 일이 없었지만, GlueSQL을 수행하려고 잠시 vscode로 수행.

 

GlueSQL이란 무엇인가?

GlueSQL is a SQL database library written in Rust. It provides a parser (sqlparser-rs), execution layer, and optional storage (sled) packaged into a single library. Developers can choose to use GlueSQL to build their own SQL database, or as an embedded SQL database using the default storage engine.

 

Tae Hoon Kim 님이 리드하고 계신 프로젝트이다.

 

GlueSQL 코드

우선 튜토리얼 코드 먼저 체크

use gluesql::*;
fn main() {
    let storage = SledStorage::new("data/doc-db").unwrap();
    let mut glue = Glue::new(storage);
    let sqls = vec![
        "DROP TABLE IF EXISTS Glue;",
        "CREATE TABLE Glue (id INTEGER);",
        "INSERT INTO Glue VALUES (100);",
        "INSERT INTO Glue VALUES (200);",
        "SELECT * FROM Glue WHERE id > 100;",
    ];

    for sql in sqls {
        let output = glue.execute(sql).unwrap();
        println!("{:?}", output)
    }
}

 

vscode에 Rust 구성

아래 문서대로 Rust analyzer를 구성하고 vscode에서 "Rust Analyzer: Run" 수행

How to launch a Rust application from Visual Studio Code? - Stack Overflow

 

// This is the main function
fn main() {
    // Statements here are executed when the compiled binary is called

    // Print text to the console
    println!("Hello World!");
}

 

rust-hello-world.png

 

이어서, 위의 GlueSQL 코드도 수행했고 결과를 잘 확인.

실행 결과
------------------------------
DropTable
Create
Insert(1)
Insert(1)
Select { labels: ["id"], rows: [[I64(200)]] }

 

GlueSQL-js

gluesql-js-demo.png

embedded SQL이라 이렇게 브라우저에서 실행도 가능하다.

gluesql/gluesql-js: GlueSQL JavaScript Interface (github.com)

 

sled - embedded database 역시 체크할 필요가 있다.

spacejam/sled: the champagne of beta embedded databases (github.com)

 

다양한 embeded 환경에서 활용 가능할 좋은 프로젝트로 예상된다.

이후에 좀더 체크 예정.

 

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38119
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20673
118 오픈소스 소통을 위한 Git 공부하기 | ep6. 내 저장소에 소스를 푸시하기 위한 Fork | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.02 94
117 오픈소스 소통을 위한 Git 공부하기 | ep5. 브랜치 (Branch) 이해하기 | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.01 55
116 오픈소스 소통을 위한 Git 공부하기 | ep4. 변경 단위를 만들기 위한 Commit | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.31 90
115 오픈소스 소통을 위한 Git 공부하기 | ep3. 소스를 가져오기 위한 Clone | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.30 80
114 오픈소스 소통을 위한 Git 공부하기 | ep2. Git를 소개합니다 | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.28 91
113 오픈소스 소통을 위한 Git 공부하기 | ep1. 버전 관리의 중요성 | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.27 91
112 오픈소스 소통을 위한 Git 공부하기 | ep0. 인트로 | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.24 140
111 Azure VM - 오픈소스 ROS Gazebo Web 설치 및 실행 file 코난(김대우) 2022.10.19 194
110 parquet 파일의 meta 정보 추출 코난(김대우) 2021.11.16 1180
» embedded SQL - GlueSQL, rust 기반 오픈소스 프로젝트 file 코난(김대우) 2021.10.22 463
108 대규모 머신러닝 프로젝트 Serving에 사용되는 Python WAS, ASGI - uvicorn file 코난(김대우) 2021.10.06 1038
107 Apache Arrow 리뷰 file 코난(김대우) 2021.10.05 2063
106 autopep8을 이용한 python 린트(linting) 구현 코난(김대우) 2021.09.15 703
105 Python에서 환경변수(environment variable) 처리 코난(김대우) 2021.09.15 277
104 Python에서 random 문자열이나 숫자 가져오는 방법 코난(김대우) 2021.09.15 994
103 Python 중급 강좌 - 9. 비동기 작업(Asynchronous operations): asyncio 코난(김대우) 2021.01.03 802
102 Python 중급 강좌 - 8. 외부 리소스 관리(Managing external resources): with 코난(김대우) 2021.01.03 464
101 Python 중급 강좌 - 7. 파일작업(File read/write) file 코난(김대우) 2021.01.03 1477
100 Python 중급 강좌 - 6. 파일시스템(File system) 관리 코난(김대우) 2021.01.03 771
99 Python 중급 강좌 - 5. 다중상속(Mixins - multiple inheritance) 코난(김대우) 2021.01.03 543





XE Login