An open API service indexing awesome lists of open source software.

https://github.com/roshan-r/asyncmongo


https://github.com/roshan-r/asyncmongo

async mongodb pymongo python

Last synced: 6 months ago
JSON representation

Awesome Lists containing this project

README

          

ASYNCMONGO



Asynchronous MongoDB Made Easy



license
last-commit
repo-top-language
repo-language-count

## Overview

asyncmongo is a Python library for working with MongoDB asynchronously. I’m building this project to learn more about how database drivers work and to explore what goes into creating one. It’s a mix of learning and coding, so things might evolve as I figure things out!

---

## Getting Started

## Documentation

For detailed documentation, visit the [asyncmongo documentation](https://asyncmongo.readthedocs.io/en/latest/).

### Prerequisites

Before getting started with asyncmongo, ensure your runtime environment meets the following requirements:

- **Programming Language:** Python
- **Package Manager:** Poetry

### Installation

Install asyncmongo using one of the following methods:

**Build from source:**

1. Clone the asyncmongo repository:
```sh
git clone https://github.com/Roshan-R/asyncmongo
```

2. Navigate to the project directory:
```sh
cd asyncmongo
```

3. Install the project dependencies:

**Using `poetry`**   [](https://python-poetry.org/)

```sh
poetry install
```

### Testing
Run the test suite using the following command:
**Using `poetry`**   [](https://python-poetry.org/)

```sh
poetry run pytest
```

---
## Project Roadmap

### Currently Supported Operations
- `find`
- `find_one`
- `insert_one`

- [X] **`Basic Connection`**: Set up a basic connection to a MongoDB instance.
- [ ] **`Authentication`**:
- [X] Added support for SCRAM-SHA-256 authentication scheme.
- [ ] Add support for additional authentication mechanisms (e.g LDAP).
- [ ] **`Connection Pooling`**: Develop connection pooling for better performance and scalability.
- [ ] **`Testing and Benchmarks`**: Write unit tests and benchmarks.
- [ ] Write unit tests for connection handling and CRUD operations.
- [ ] Create benchmarks to measure and optimize performance.
- [ ] **`Cython`**: Rewrite core components in Cython to improve performance, inspired by asyncpg's implementation.
---