AI 리서치 엔지니어다보니 평소에 Streamlit 많이 쓰는데 구조적인 한계(전체 재실행) 때문에 좀 답답했음.
그래서 "문법은 Streamlit 그대로 가져가되, 엔진은 React처럼 반응형으로" 돌아가게 새로 한번 만들어 봄
Repo : https://github.com/violit-dev/violit
이름은 Violit이고 이제 버전 0.1.12임
- Pure Python : JS 몰라도 됨.
- No Rerun : 상태 변경된 부분만 렌더링함
- Beautiful : Theme(+20개)도 지원하고, CSS 등 지원해서 쉽게 예쁘게 만들 수 있음
- Web & Desktop : 웹이랑 데스크톱 앱(pywebview) 둘 다 배포 가능.
Violit으로 직접 만든 문서 사이트인데 괜찮은지 봐주라.
- Landing Page : https://violit.cloud/
- Documentation : https://doc.violit.cloud
오픈소스니까 관심 있는 갤러들 와서 스타 하나 박아주면 고맙고, 훈수는 달게 받음.
운 좋으면 Python Fullstack에서 한 획을 그을 수도 있지 않을까 기대하고 있음.
이건 python으로 html/js를 wrapping해놨다고 봐야되나? widget이 쉽게 확장가능한지 잘 모르겠네
html/js wrapping과 유사하다고 보면 될거 같아. 기본적으로 widget을 많이 제공하고 있고, 그것들이 자동으로 html/js를 만들어내지. streamlit, nicegui, dash, panel, reflex, solara같은 것들이 유사 제품들이라고 보면 돼. custom widget을 지원하게끔 하려고 하는데, 아직 아이디어 정보로만 있어.
원래는 streamlit을 대체하는 게 목적이었는데..만들다 보니까, pure python web ui framework까지 확장 할 수 있겠더라고. python개발자들이 굳이 react없이 MVP만들때 적합할거 같아. 그리고 보면 대부분 비슷한 widget들만 쓰고 있으니..왠만한 사이트도 가능하지 않을까 싶어
sdui같은 아이디어를 고려해보는건 어때 python은 dsl + 쿼리, 그리고 실제로 뒤에 react 띄워서 렌더링. 이러면 react가 잘하는 re render, state 관리는 그대로 맡기고 데이터 직군은 python 정도만 집중할 수 있어서 ㄱㅊ지않을까 싶네
@ㅇㅇ(14.39) 오 맞아. 사실 Violit도 넓게 보면 그 SDUI랑 비슷한 구조야. 근데 Frontend 쪽에 상태 관리를 다 맡기면 Python이랑 싱크 맞추는 비용이 생길 것 같아서, 아예 Python 안에서 직접 의존성 추적해서 변경된 부분만 Fine-grained state로 업데이트하게 구현했어. 사실 내부적으로 shoelace(web awesome) components를 쓰고있어서 React라기보다 lit이라고 보면 돼. 그리고 engine을 websocket과 htmx 중 하나로 고를 수 있게 해뒀어. 상황에 따라서 골라쓸 수 있어. 그리고 데이터 직군이 Python에만 집중하게 하자는 건 내가 추구하는 방향이랑 정확히 일치해. 상태관리 같은거 전혀 신경쓸 필요 없고 Violit에서 다 처리 해 주고 있어
@돕플라밍고 아이디어, 방향성은 진짜 좋다 데이터 직군 팀에서 외부 공유용 대시보드 만들 때 쓰면 진짜 유용할 듯… tableau, quicksight 등 락인 없고, theme customizing만 더 잘 되면 좋겠네
@ㅇㅇ(14.39) 응 고마워. 사실 내 주변 data science, ai하는 사람들이 streamlit 많이 쓰는데..느리고 예쁘지도 않더라고. 그래서 대체제로 nicegui를 찾아서 내가 소개시켜줬는데 다들 문법을 맘에 안들어 하더라고. 난 사실 nicegui만 되어도 괜찮다고 보긴 하는데..아무튼 그래서 streamlit의 단점을 없애보고자 만들어봤어. 말해준대로 더 열심히 업데이트 해볼게. 요즘 이것 때문에 개발하는 재미가 있다.
와 대단해요 ㄷㄷ 리서치도 하는데 풀스택도
경력이 꽤 많아서 :)
얼른 llms.txt와 mcp를 만들어서 내가 무지성으로 해줘 할 수 있도록 하란데스!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
오키도키 곧 llms.txt추가 하겠음. mcp는 나중에 해줄게 ㅋ - dc App
버튼 이벤트 functional chaining 해보면 좋을거 같은데요 그저 개인적 취향… - dc App
chaining지원하게끔 할 수는 있는데 최대한 streamlit과의 유사한 사용성을 가져가려고 일단은 제공하지 않는걸로 디자인을 결정했어. 제안 고마워~ 혹시나 다시한번 필요할지 생각 더 해볼게. - dc App