Metadata-Version: 2.4
Name: syncwave
Version: 0.3.1
Summary: Turn plain JSON files into a live data store, two-way synced with your Python objects.
Author: Lucas Iannitello
Author-email: Lucas Iannitello <lucas.iannitello@protonmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pydantic
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Database
Classifier: Topic :: File Formats :: JSON
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Dist: pydantic>=2.13.5
Requires-Dist: typing-extensions>=4.16.0
Requires-Dist: watchdog>=6.0.0
Requires-Python: >=3.10
Project-URL: Homepage, https://syncwave.dev/
Project-URL: Documentation, https://syncwave.dev/
Project-URL: Repository, https://github.com/iannitello/syncwave
Project-URL: Issues, https://github.com/iannitello/syncwave/issues
Description-Content-Type: text/markdown

# Syncwave

A Python library that turns plain JSON files into a live data store, two-way synced with your Python objects.

## Documentation

Read the docs at https://syncwave.dev/.

A few useful links:

- [Cheat Sheet](https://syncwave.dev/cheat_sheet/)
- [Usage Guide](https://syncwave.dev/usage/syncwave/)
- [API Reference](https://syncwave.dev/api/syncwave/)

## Installation

Install from [PyPI](https://pypi.org/project/syncwave/).

```shell
# uv
uv add syncwave

# pip
pip install syncwave
```

Requires Python 3.10+.

## What Is Syncwave

Syncwave keeps in-memory Python objects and JSON files synchronized, in both directions:

- Change your data from Python (an `append`, a dict assignment, a model field update) and the JSON file is updated.
- Edit the JSON file, by hand or from another process, and your Python objects are updated in place.
- Every change, from either side, is validated with [Pydantic](https://pydantic.dev/docs/validation/latest/get-started/) against the store's declared type.

You get persistence with _zero_ setup: no database to install, no ORM, no serialization code. Your data lives in JSON files you can open and edit at any time.

If you know Python type hints and Pydantic models, you already know everything you need.

## Versioning

Syncwave is under active development, and until version 1.0, new releases may introduce backward-incompatible changes.

## License

Syncwave is licensed under the MIT License.
