Metadata-Version: 2.4
Name: laila-core
Version: 1.0.0b2
Summary: Lambda's Interdisciplinary Large Atlas
Author: Amir Zadeh
Project-URL: Homepage, https://github.com/LambdaLabsML/laila-core
Project-URL: Repository, https://github.com/LambdaLabsML/laila-core
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: pydantic
Requires-Dist: redis
Requires-Dist: websockets
Requires-Dist: jsonrpcserver
Requires-Dist: boto3
Requires-Dist: google-cloud-storage
Requires-Dist: azure-storage-blob
Requires-Dist: psycopg[binary]
Requires-Dist: pymongo
Requires-Dist: duckdb
Requires-Dist: imageio
Requires-Dist: numpy
Requires-Dist: msgpack
Requires-Dist: torch
Requires-Dist: pillow
Requires-Dist: h5py
Requires-Dist: imageio
Requires-Dist: cryptography
Requires-Dist: redis
Requires-Dist: huggingface_hub
Requires-Dist: dotmap

# LAILA

LAILA stands for Lambda's Interdisciplinary Large Atlas.

LAILA is a platform for unifying training, simulation, and data management into a single computational workflow. It is built on a simple idea: compute and data are two sides of the same coin. In modern technical systems, models, datasets, simulations, artifacts, and execution environments are often split across disconnected tools and storage layers. LAILA is designed to reduce that fragmentation and provide a more coherent interface for working across them.

At its core, LAILA encapsulates distributed silos of compute and data behind a consistent programming model. The goal is to make massively distributed work feel straightforward, composable, and practical, whether the workload involves machine learning pipelines, simulation outputs, stored artifacts, or hybrid workflows that span multiple backends.

## Vision

LAILA is intended to serve as an interdisciplinary platform for teams that need to move fluidly between data creation, data storage, model training, and large-scale execution. Rather than treating infrastructure boundaries as the primary abstraction, LAILA focuses on ergonomic syntax and reusable interfaces that let users reason about workflows at a higher level.

This approach makes it easier to:

- organize and manage data across multiple storage systems
- connect compute and memory workflows with less boilerplate
- build distributed pipelines that remain readable and maintainable
- reduce the operational friction between experimentation and production-scale execution

## Current Release

LAILA is currently in **beta 1.0**. 

The current release includes the **command and memory module** as the first public component of the broader platform. This release is intended to establish the foundation for LAILA's data and workflow abstractions while additional modules continue to mature.

As a beta release, interfaces may continue to evolve as the platform expands and real-world usage informs the next stage of development.

## Installation

Install the currently released package with:

```bash
pip install laila-core
```

## Project Focus

The long-term focus of LAILA is to provide a common layer for:

- data management across heterogeneous storage backends
- compute workflows that can scale across distributed environments
- training and simulation pipelines that benefit from a shared abstraction layer
- syntax that makes complex infrastructure easier to use without hiding the underlying flexibility

In practice, this means building tools that help users treat datasets, stored objects, memory systems, and execution backends as parts of a single workflow rather than separate systems stitched together manually.

## Getting Started

Here is a super simple example of memorizing data into S3 and then remembering it back:

```python
import laila
from laila.pool import S3Pool

pool = S3Pool(
    bucket_name="your-bucket",
    access_key_id="YOUR_ACCESS_KEY_ID",
    secret_access_key="YOUR_SECRET_ACCESS_KEY",
    region_name="us-east-1",
)

entry = laila.memorize(
    data={"message": "hello from laila"},
    pool=pool,
)

same_entry = laila.remember(entry.global_id, pool=pool)
print(same_entry.data)
```

For additional examples and end-to-end workflows, see the `examples` directory.

## Credits

- Creator: Amir Zadeh
- Tutorials and Documentation: Jessica Nicholson
- Acknowledgements: Jason Zhang, Xuweiyi Chen, Connor Alvarez
