파이썬 & 오픈소스 개발 Tip과 강좌

이곳은 파이썬과 여러 오픈소스 기반 프레임워크 관련 Tip과 강좌 게시판 입니다. 관련 개발을 진행하면서 알아내신 Tip이나 강좌와 새로운 소식을 적어 주시면 다른 공부하는 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

 

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 Python 무료 강좌 - 기초, 중급, 머신러닝(2021년 1월 업데이트) 코난(김대우) 2021.01.01 600
110 parquet 파일의 meta 정보 추출 코난(김대우) 2021.11.16 21
» embedded SQL - GlueSQL, rust 기반 오픈소스 프로젝트 file 코난(김대우) 2021.10.22 37
108 대규모 머신러닝 프로젝트 Serving에 사용되는 Python WAS, ASGI - uvicorn file 코난(김대우) 2021.10.06 91
107 Apache Arrow 리뷰 file 코난(김대우) 2021.10.05 85
106 autopep8을 이용한 python 린트(linting) 구현 코난(김대우) 2021.09.15 61
105 Python에서 환경변수(environment variable) 처리 코난(김대우) 2021.09.15 51
104 Python에서 random 문자열이나 숫자 가져오는 방법 코난(김대우) 2021.09.15 42
103 Python 중급 강좌 - 9. 비동기 작업(Asynchronous operations): asyncio 코난(김대우) 2021.01.03 338
102 Python 중급 강좌 - 8. 외부 리소스 관리(Managing external resources): with 코난(김대우) 2021.01.03 189
101 Python 중급 강좌 - 7. 파일작업(File read/write) file 코난(김대우) 2021.01.03 232
100 Python 중급 강좌 - 6. 파일시스템(File system) 관리 코난(김대우) 2021.01.03 228
99 Python 중급 강좌 - 5. 다중상속(Mixins - multiple inheritance) 코난(김대우) 2021.01.03 127
98 Python 중급 강좌 - 4. 상속(Inheritance) 코난(김대우) 2021.01.03 72
97 Python 중급 강좌 - 3. 클래스(Class) 코난(김대우) 2021.01.03 96
96 Python 중급 강좌 - 2. 람다(Lamda) file 코난(김대우) 2021.01.03 121
95 Python 중급 강좌 - 1. Python 스타일 가이드: 서식(Formatting)과 린팅(Linting) file 코난(김대우) 2021.01.02 154
94 Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패드워드) 관리 - dotenv 코난(김대우) 2021.01.02 142
93 Python 초급 강좌 목차 - 18. 데코레이터(Decorators) 코난(김대우) 2021.01.02 87
92 Python 초급 강좌 목차 - 17. JSON 데이터 처리 file 코난(김대우) 2021.01.02 185
91 Python 초급 강좌 목차 - 16. 외부 웹서비스 API 호출 file 코난(김대우) 2021.01.02 214





XE Login