# Show GN: Graph Dataframe와 Database를 개발해보았습니다

> Clean Markdown view of GeekNews topic #29329. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29329](https://news.hada.io/topic?id=29329)
- GeekNews Markdown: [https://news.hada.io/topic/29329.md](https://news.hada.io/topic/29329.md)
- Type: show
- Author: [eastlighting1](https://news.hada.io/@eastlighting1)
- Published: 2026-05-10T02:34:15+09:00
- Updated: 2026-05-10T02:34:15+09:00
- Original source: [github.com/eastlighting1](https://github.com/eastlighting1/Lynxes)
- Points: 1
- Comments: 0

## Topic Body

저는 지식그래프, 온톨로지 등을 다루던 연구실에서 석사를 졸업한 학생입니다.  
  
졸업 이후에 제가 어떤 부분에서 스펙을 쌓을 수 있을까 고민해보다가, 학교에서 강조하던 '오픈소스'가 생각났습니다. 그 이후로 여러가지의 아이디어를 내보다가, 석사 시절에 neo4j를 사용한 연구를 진행하려다 IO가 너무 오래걸려서 포기했던 기억이 났습니다. 그래서 기성 라이브러리 수준의 성능을 유지하면서 속도도 빠른 라이브러리들을 개발해보자는 생각에 Graph Ecosystem 이라는 주제 하에 AI Agent의 도움을 받아 여러가지 그래프 라이브러리들을 개발해보고 있습니다.  
  
- Lynxes  
    - Lynxes는 Polars의 Graph 버전을 목표로 한 Dataframe 라이브러리입니다. 그래서 이름도 **Panda**s - **Polar**s 에 이은 **Lynx**es 입니다. (Lynx는 시라소니입니다)  
    - Ontology의 RDF랑 유사하게 생긴 gf 라는 데이터 파일도 같이 구현하여 사용하고 있습니다.  
    - Apache Arrow 기반인데, 이 친구는 기본적으로 dataframe 마냥 CRUD를 지원하지 않습니다! 그래서 이걸 어떻게 처리해야하는지 고민이 많았었습니다.  
    - [벤치마크](https://github.com/eastlighting1/Lynxes/actions/runs/25439703726/job/74627248362)를 보면, 솔직하게 말하면 기성 라이브러리인 networkx나 igraph보다 빠르진 않습니다만 그래도 사용에 불편함은 없을 정도라 저는 일단 만족하고 있습니다.  
  
- CaracalDB  
    - CaracalDB는 DuckDB의 Graph DB 버전을 목표로 한 Database 라이브러리입니다. X + DB 구조가 DuckDB에서 따온 것은 바로 눈치채셨으리라 생각하고, Caracal은 카라칼이 스라소니랑 비슷한 친구라는 GPT의 조언을 참고하였습니다.  
    - CaracalDB도 .crcl 이라는 전용 DB 파일을 가지고 있습니다. 원래는 디렉토리 구조였는데, 파일화 시켜달라고 했더니 파일 상태로도 잘 돌아가서 좋았습니다.  
    - Embeded DB인 특성 상, 당연히 서버를 사용하는 Neo4j보다는 빠른 편입니다.  
  
두개의 라이브러리 모두 pypi에 업로드 되어 있기 때문에 바로 사용이 가능합니다.  
  
```md   
    uv add lynxes  
```  
  
```md   
    uv add caracaldb  
```  
  
또한, 별도로 벤치마크 작업 및 최적화를 [이 레포지터리](https://github.com/eastlighting1/OSS_Benchmark)에서 진행해보고 있습니다.  
- TASK 1은 Knowledge Graph, Task 2는 GraphRAG입니다. 다음은 GNN을 해볼 생각입니다.  
  
아직 부족한 부분이 많습니다. '**이거 왜 이렇게 구현함?**', '**이 벤치마크는 왜 이런 식으로 구현함?**'과 같은 질타와 지적도 환영합니다.

## Comments



_No public comments on this page._
