APSW, 표준 sqlite3보다 SQLite 기능을 깊게 노출하는 파이썬 래퍼
- APSW는 커밋 5,879개와 태그 149개가 쌓인 오래된 프로젝트이며, 최신 커밋은 Windows에서 지연된 DB 닫기 문제를 테스트로 다룸
- Py_None 참조 카운트 버그를 고치는 커밋(#637)과 python 3.15 final 릴리스에 맞춘 도구 변경이 최근에 들어감
- 댓글에서는 표준 sqlite3의 DBAPI 추상화가 SQLite 기능을 끝까지 쓰기 어렵게 만든다는 평가가 많음
- sqlite-utils를 APSW로 포팅한 apswutils와 stdlib 대안인 cysqlite도 함께 소개됨
Hacker News opinions
이 글 보고 새로 알게 됨. 다음 SQLite 프로젝트에서 APSW 써볼 생각임
좋은 래퍼인데 제목에 연도를 붙이면 좋겠음. 새로운 건 아님
최근 커밋이 1시간 전이라 오래된 프로젝트는 아님. 새롭게 느끼는 사람이 많은 거지 오래된 건 아님
파이썬 sqlite3 quirks 때문에 삽질하다가 APSW로 갈아탔는데 프로젝트 하나 살렸음. 그 뒤로 기본값으로 쓰기 시작함
sqlite3에서 어떤 특이점에 걸렸는지 궁금함
나는 SQLite 덕후를 위한 SQLite 라이브러리라고 봄. 표준 모듈은 DBAPI 추상화 때문에 SQLite 기능을 제대로 못 뽑음
DBAPI로 DB 교체가 가능하다는 건 맞는데 실제로는 쉽지 않음. Postgres에서 sqlite로 옮기니 파라미터 스타일(%(name)s를 :name으로)부터 컨텍스트 매니저 위치까지 전부 달랐음
커서에서 결과 행이 없을 때 컬럼 이름 얻는 방법 권장하는 거 있음?
sqlite-utils를 APSW로 포팅한 apswutils 한 1, 2년 써봤는데 잘 돌아감. 편한 API 원하면 참고해봐
표준 모듈 쓰는 사람한테는 cysqlite도 추천함. 트랜잭션 의미가 더 나은 편이고 암호화 SQLite를 정적 링크할 수 있음. 성능은 stdlib보다 낫지만 APSW보다는 낮음. SQLite API를 전부 쓰고 싶으면 APSW가 답임
나는 SQL 말고 직접 파일 포맷 만들어서 읽고 쓰는 방식도 씀. 매직넘버를 헥스로 읽으면 뜻이 나오게 만드는 재미도 있음. 근데 나중에 벽에 부딪힐 것 같긴 함