Skip to content

Roadmap: run only in browser with no required python backend #107

@willeppy

Description

@willeppy

Right now, Texture is built around having a python FastAPI backend that holds the data, executes all queries, and is called by the frontend. This isn't totally necessary, and ties the interface to the python backend making it harder to deploy.

I think a better system would be to take an approach similar to mosaic (https://uwdata.github.io/mosaic/server/) where the backend can be totally in browser with duckdb wasm, etc, OR can make calls to a python server.

Rewrite to be in TS

To start making this, I think would require the following steps to get rid of the python backend

  • The main server file is in server.py (https://github.com/cmudig/Texture/blob/main/texture/server.py) which has a couple of core components that would need to be moved to be frontend only:
  • Duckdb queries
  • Lancedb queries for vector search
  • OpenAI queries for LLMs (separate issue is ability to connect to custom LLM for transforms)

I suspect there's probably some code cleanup that would need to happen to have a consistent API that can be implemented by a backend "client" that is either only in javascript, or could be in Python, etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions