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 [IT재직자] 개강임박!! 올해 마지막 무료 및 국비지원 교육 (JAVA, 리눅스 기초/고급 , CCNA, CCIE 등) 코난(김대우) 2022.12.02 115
Notice 2022년 11월 SQLER의 강좌 업데이트 리스트 코난(김대우) 2022.12.01 24
Notice 2022 공개SW 페스티벌 - Open Up 코난(김대우) 2022.12.01 15
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2021년 1월 업데이트) 코난(김대우) 2021.01.01 1068
123 Python code page 오류 해결 - UnicodeDecodeError: 'cp949' codec can't decode byte ____ in position [1] 코난(김대우) 2022.11.28 7
122 오픈소스 소통을 위한 Git 공부하기 | ep9. 클로징 | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.15 21
121 오픈소스 소통을 위한 Git 공부하기 | ep8-2. 비주얼 스튜디오 코드로 쉽게 Git 사용하기 | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.11 16
120 오픈소스 소통을 위한 Git 공부하기 | ep8-1. 비주얼 스튜디오 코드로 쉽게 Git 사용하기 | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.09 19
119 오픈소스 소통을 위한 Git 공부하기 | ep7. 변경한 소스 반영을 요청하는 풀리퀘스트 | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.05 7
118 오픈소스 소통을 위한 Git 공부하기 | ep6. 내 저장소에 소스를 푸시하기 위한 Fork | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.02 18
117 오픈소스 소통을 위한 Git 공부하기 | ep5. 브랜치 (Branch) 이해하기 | 애저 듣고보는 잡학지식 코난(김대우) 2022.11.01 7
116 오픈소스 소통을 위한 Git 공부하기 | ep4. 변경 단위를 만들기 위한 Commit | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.31 11
115 오픈소스 소통을 위한 Git 공부하기 | ep3. 소스를 가져오기 위한 Clone | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.30 10
114 오픈소스 소통을 위한 Git 공부하기 | ep2. Git를 소개합니다 | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.28 13
113 오픈소스 소통을 위한 Git 공부하기 | ep1. 버전 관리의 중요성 | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.27 11
112 오픈소스 소통을 위한 Git 공부하기 | ep0. 인트로 | 애저 듣고보는 잡학지식 코난(김대우) 2022.10.24 30
111 Azure VM - 오픈소스 ROS Gazebo Web 설치 및 실행 file 코난(김대우) 2022.10.19 16
110 parquet 파일의 meta 정보 추출 코난(김대우) 2021.11.16 777
» embedded SQL - GlueSQL, rust 기반 오픈소스 프로젝트 file 코난(김대우) 2021.10.22 315
108 대규모 머신러닝 프로젝트 Serving에 사용되는 Python WAS, ASGI - uvicorn file 코난(김대우) 2021.10.06 565
107 Apache Arrow 리뷰 file 코난(김대우) 2021.10.05 1111
106 autopep8을 이용한 python 린트(linting) 구현 코난(김대우) 2021.09.15 308
105 Python에서 환경변수(environment variable) 처리 코난(김대우) 2021.09.15 135
104 Python에서 random 문자열이나 숫자 가져오는 방법 코난(김대우) 2021.09.15 354





XE Login

테스트 팝업
Close