S3 based search engine designed (inspired by Turbopuffer) for fun!
Run LocalStack to emulate S3 locally and point smolpuff at it.
- Start LocalStack (Docker):
docker run --rm -d --name localstack -p 4566:4566 -e SERVICES=s3 localstack/localstack
# Or pip:
pip install localstack
localstack start- Install awslocal (optional, convenient helper):
pip install awscli-local- Create the S3 bucket:
awslocal s3 mb s3://smolpuff --region us-east-1
# Or with AWS CLI:
aws --endpoint-url http://localhost:4566 s3 mb s3://smolpuff --region us-east-1- (Optional) Export AWS env vars if you prefer the app to read them:
export AWS_ACCESS_KEY_ID=access_key_id
export AWS_SECRET_ACCESS_KEY=secret_access_key
export AWS_REGION=us-east-1The code in src/main.rs currently uses http://localhost:4566 and example credentials
(see the S3 builder block) — update if you changed ports/credentials.
- Run the app:
cargo runYou should see logs about adding vectors and query results. If you need to create or inspect buckets/objects, use awslocal or aws --endpoint-url.