# Welcome to the `mosh` Pit

For many types of data, you want to be able to store it, search it. You want to apply functions to map data to other 
data. You want it to be fast, durable, and easy to use. You want a simple API. It needs to be economical and
scale to only what you use.

It needs to work well on your local computer and doesn't require extensive cloud resources like sophisticated databases.

# What is `mosh`

- M - Mappable
- O - Objects
- S - Searchable and Scales to Zero
- H - Search and storage heuristics


- P - Persistent (cloud storage)
- I - Indexed Automatically (for speed)
- T - Threaded (i.e., concurrency, parallelism, utilizes multiple cores)

`mosh` is based on objects, currently `pydantic` objects.

# Requirements

- Natural way to store a wide variety of data objects
- Searchable
- Scales to Zero
- Simple API
- Mappable (one mosh object can be mapped to another object via function)
- Fast for Local Compute (e.g., Laptops/Desktops/Workstations)
- Durable data (can synch to the cloud and/or other nodes)
- Eventually Consistent

## Non-Features

- Transactions
- Performant with Huge Datasets