/a-faster-imdb-rest-api

A fast(er) IMDB REST API with Rust

Primary LanguageRust

A fast(er) REST API for IMDB data

This is a fork of A fast REST API for IMDB data, which switches the Go stack by a Rust stack to see if any improvements can be done. This project has the following goals:

  • Test if a solution (for the same problem) in Rust can be faster than a solution in Go.
  • Ensure that it can be ran on Rust stable.
  • Compare if syntax / code maintainability gets any harder than in Go or C++.
  • Check if Rust is a viable toolkit for backend development.

If you want to get more information about the project's context and the database, check out the main Go project.

Quickstart

To use the API, first ingest the IMDB data into a MongoDB. For example, I've ingested it using PySpark into a local MongoDB instance. Then, clone this repo, install Rust 2018 stable, and run cargo run. If you want to run it as a CLI app, then run cargo install --path ..

If you are using an external MongoDB database, you can change the host settings at .cliApp.yaml.

MongoDB Collections

Collection Name Documents Avg. Document Size Total Document Size Num. Indexes Total Index Size
crew 10,244,172 139.9 B 1.3 GB 2 274.9 MB
film 7,009,774 293.0 B 1.9 GB 2 235.2 MB
principals 40,314,920 121.4 B 4.6 GB 1 389.7 MB