# ipaacar - Incremental Processing Architecture for Artificial Conversational Agents, implemented in Rust




Implementation of IPAACA in Rust. For a theoretical background, see [ipaaca wiki entry](https://scs.techfak.uni-bielefeld.de/wiki/public/ipaaca/start). IPAACA is developed by the Social Cognitive Systems Group at Bielefeld University. Many thanks to David Schwab for his contribution to the initial rust implementation.
IPAACA is a framework for incremental processing via "incremental units" (IUs) processed by buffers (in and out). It uses a MQTT broker for message passing. Therefore, a MQTT broker must be installed and running to use ipaaca(r) ([mosquitto](https://mosquitto.org/download/), [nanomq](https://nanomq.io/downloads?os=Linux)). Simple messaging is possible via "messages". IUs can be updated, linked, committed, and retracted, allowing incremental processing, e.g. for conversational agents.
## Installation
### Python
#### Installing from PyPI
You can grab a precompiled versions from [PyPI](https://pypi.org/project/ipaacar-python/) and install it via pip:
```
pip install ipaacar-python
```
Currtently, the precompiled versions support [manylinux_x_y](https://github.com/pypa/manylinux) (e.g., Ubuntu >= 21.04, etc.) and Python 3.8 to 3.11.
#### Building from source
If the precompiled versions do not suit your needs, build ipaacar-python from source.
* Install Rust and Cargo using [rustup](https://rustup.rs/):
```curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh```
* Install [Python](https://www.python.org/) (3.11 recommended), create and use a [virtual environment](https://docs.python.org/3/library/venv.html)
* Install [Maturin](https://www.maturin.rs/): ```pip install maturin```
* Build the wheel package inside the `ipaacar-python` folder: ```maturin build --release```
* Install the wheel: ```pip install ../target/wheels/FILENAME.whl```
### Rust
#### Usage over ssh (recommended)
You can use the library by linking it over git ssh. You will always use the newest version like this.
```toml
[dependencies]
ipaacar-core = { git = "ssh://git@gitlab.ub.uni-bielefeld.de:scs/ipaacar.git"}
```
If the project is still hosted on the uni gitlab, setup ssh authentication and create `.cargo/config.toml` with this content:
```toml
[net]
git-fetch-with-cli = true
```
#### Downloading source files
Download the ipaaca-core folder and place it into your project directory. You can use the library by linking it in your `Cargo.toml` like this:
```toml
[dependencies]
ipaacar-core = { path = "/ipaacar-core" }
```
Depending on your folder structure you might need to adjust the path.
## Documentation
Documentation is available for:
#### [Python](https://scs.pages.ub.uni-bielefeld.de/ipaacar/ipaacar-python)
Documentation of the Python API. Build with pdoc.
#### [Rust](https://scs.pages.ub.uni-bielefeld.de/ipaacar/ipaacar-core/doc/ipaacar_core/)
Documentation of the Rust library. Build with standard rust docs.
Raw data
{
"_id": null,
"home_page": null,
"name": "ipaacar-python",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ipaaca, ipaacar, rust, messaging, incremental, mqtt",
"author": "AG-SCS",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/bc/13/a1f438a0570ac8113f30bc0ea4c32f5422d344a6291f95237b68fa5d5316/ipaacar_python-0.1.12.tar.gz",
"platform": null,
"description": "# ipaacar - Incremental Processing Architecture for Artificial Conversational Agents, implemented in Rust\n\n\n\n\n\n\nImplementation of IPAACA in Rust. For a theoretical background, see [ipaaca wiki entry](https://scs.techfak.uni-bielefeld.de/wiki/public/ipaaca/start). IPAACA is developed by the Social Cognitive Systems Group at Bielefeld University. Many thanks to David Schwab for his contribution to the initial rust implementation.\n\nIPAACA is a framework for incremental processing via \"incremental units\" (IUs) processed by buffers (in and out). It uses a MQTT broker for message passing. Therefore, a MQTT broker must be installed and running to use ipaaca(r) ([mosquitto](https://mosquitto.org/download/), [nanomq](https://nanomq.io/downloads?os=Linux)). Simple messaging is possible via \"messages\". IUs can be updated, linked, committed, and retracted, allowing incremental processing, e.g. for conversational agents.\n\n\n## Installation\n### Python\n#### Installing from PyPI\n\nYou can grab a precompiled versions from [PyPI](https://pypi.org/project/ipaacar-python/) and install it via pip:\n```\npip install ipaacar-python\n```\nCurrtently, the precompiled versions support [manylinux_x_y](https://github.com/pypa/manylinux) (e.g., Ubuntu >= 21.04, etc.) and Python 3.8 to 3.11.\n\n#### Building from source\n\nIf the precompiled versions do not suit your needs, build ipaacar-python from source.\n\n * Install Rust and Cargo using [rustup](https://rustup.rs/):\n```curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh```\n\n * Install [Python](https://www.python.org/) (3.11 recommended), create and use a [virtual environment](https://docs.python.org/3/library/venv.html)\n * Install [Maturin](https://www.maturin.rs/): ```pip install maturin```\n * Build the wheel package inside the `ipaacar-python` folder: ```maturin build --release```\n * Install the wheel: ```pip install ../target/wheels/FILENAME.whl```\n\n### Rust\n\n#### Usage over ssh (recommended)\n\nYou can use the library by linking it over git ssh. You will always use the newest version like this.\n\n```toml\n[dependencies]\nipaacar-core = { git = \"ssh://git@gitlab.ub.uni-bielefeld.de:scs/ipaacar.git\"}\n```\n\nIf the project is still hosted on the uni gitlab, setup ssh authentication and create `.cargo/config.toml` with this content:\n\n```toml\n[net]\ngit-fetch-with-cli = true\n```\n\n#### Downloading source files\n\nDownload the ipaaca-core folder and place it into your project directory. You can use the library by linking it in your `Cargo.toml` like this:\n\n```toml\n[dependencies]\nipaacar-core = { path = \"/ipaacar-core\" }\n```\n\nDepending on your folder structure you might need to adjust the path.\n\n## Documentation\n\nDocumentation is available for:\n\n#### [Python](https://scs.pages.ub.uni-bielefeld.de/ipaacar/ipaacar-python)\n\nDocumentation of the Python API. Build with pdoc.\n\n#### [Rust](https://scs.pages.ub.uni-bielefeld.de/ipaacar/ipaacar-core/doc/ipaacar_core/)\n\nDocumentation of the Rust library. Build with standard rust docs.\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Incremental Processing Architecture for Artificial Conversational Agents, implemented in Rust",
"version": "0.1.12",
"project_urls": {
"documentation": "https://scs.pages.ub.uni-bielefeld.de/ipaacar/ipaacar-python/ipaacar.html",
"homepage": "https://scs.techfak.uni-bielefeld.de",
"repository": "https://gitlab.ub.uni-bielefeld.de/scs/ipaacar"
},
"split_keywords": [
"ipaaca",
" ipaacar",
" rust",
" messaging",
" incremental",
" mqtt"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "26cbe7837138e9565217ff036db126bfd5a83768cf854a4094ee5e7efb196948",
"md5": "5667118b705d99f94051ce468e72c199",
"sha256": "af53eb3fe16630a1a7cf81c93f9711ee17891e70738837ac0b0c791980770fcd"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12-cp310-cp310-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "5667118b705d99f94051ce468e72c199",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1023106,
"upload_time": "2025-02-27T23:57:20",
"upload_time_iso_8601": "2025-02-27T23:57:20.861523Z",
"url": "https://files.pythonhosted.org/packages/26/cb/e7837138e9565217ff036db126bfd5a83768cf854a4094ee5e7efb196948/ipaacar_python-0.1.12-cp310-cp310-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a589c280e0af17fdec270f662b9890d1f017946022bffd600eef352aba912a2b",
"md5": "075d5ff118ba070ff4d8f571734d7ea5",
"sha256": "be9267f7dd2de342c4ad1a308fc7fc21841a05f107e657af7cd7547260d55806"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "075d5ff118ba070ff4d8f571734d7ea5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1023161,
"upload_time": "2025-02-27T23:57:39",
"upload_time_iso_8601": "2025-02-27T23:57:39.310107Z",
"url": "https://files.pythonhosted.org/packages/a5/89/c280e0af17fdec270f662b9890d1f017946022bffd600eef352aba912a2b/ipaacar_python-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "608e961f60184bbcd4f009007b7060804cfddc2d5dbcc98bd4fe0117e672d0ee",
"md5": "f10f8569730c420cfb4f55c726ce52e7",
"sha256": "90d7e366b0dcd33027d0abfb82021737e3c65d6776aa0d3bb2a7d09c4655632b"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "f10f8569730c420cfb4f55c726ce52e7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1023381,
"upload_time": "2025-02-27T23:57:39",
"upload_time_iso_8601": "2025-02-27T23:57:39.367636Z",
"url": "https://files.pythonhosted.org/packages/60/8e/961f60184bbcd4f009007b7060804cfddc2d5dbcc98bd4fe0117e672d0ee/ipaacar_python-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "695e8730fdb76779c5587dba465b67c5cc1925353c9228227fd386542d37d3db",
"md5": "9c01eb288ee0e54378a20e704c94fb4c",
"sha256": "315f57923a93e4098b6391232584bdb7ecb67ae8dd6e07edade8f87107732d2c"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12-cp313-cp313-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "9c01eb288ee0e54378a20e704c94fb4c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 1023305,
"upload_time": "2025-02-28T00:20:03",
"upload_time_iso_8601": "2025-02-28T00:20:03.035706Z",
"url": "https://files.pythonhosted.org/packages/69/5e/8730fdb76779c5587dba465b67c5cc1925353c9228227fd386542d37d3db/ipaacar_python-0.1.12-cp313-cp313-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f378eccad86f27fd64c9845c777d32c050936276c18ea9982bf2873c4f09e05f",
"md5": "265d9e89c20f629f07310cf947ebc97f",
"sha256": "3dbb1dc95581da766be6c20a5c79f389b70f7a9073a2c7a72a48a4199143436f"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12-cp38-cp38-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "265d9e89c20f629f07310cf947ebc97f",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1022846,
"upload_time": "2025-02-28T00:00:48",
"upload_time_iso_8601": "2025-02-28T00:00:48.896637Z",
"url": "https://files.pythonhosted.org/packages/f3/78/eccad86f27fd64c9845c777d32c050936276c18ea9982bf2873c4f09e05f/ipaacar_python-0.1.12-cp38-cp38-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a0ae2921eee9ed3ea850f74d0921401395e23b3eb829667ced92de1f4d5e6961",
"md5": "7b7770aea957fc5aaae90800f4ce46d9",
"sha256": "6611904057555623dc91afdfc112d4946996ae10f95fc886fd3390ee2a05ef00"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12-cp39-cp39-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "7b7770aea957fc5aaae90800f4ce46d9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1023281,
"upload_time": "2025-02-27T23:57:17",
"upload_time_iso_8601": "2025-02-27T23:57:17.870898Z",
"url": "https://files.pythonhosted.org/packages/a0/ae/2921eee9ed3ea850f74d0921401395e23b3eb829667ced92de1f4d5e6961/ipaacar_python-0.1.12-cp39-cp39-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bc13a1f438a0570ac8113f30bc0ea4c32f5422d344a6291f95237b68fa5d5316",
"md5": "9c1ce58ababc8b9b132ec07c394577dc",
"sha256": "5987252d0bd39c654813b30769906288dbb716ca43f038dbfa4301a6dcaa6376"
},
"downloads": -1,
"filename": "ipaacar_python-0.1.12.tar.gz",
"has_sig": false,
"md5_digest": "9c1ce58ababc8b9b132ec07c394577dc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 75157,
"upload_time": "2025-02-27T23:57:20",
"upload_time_iso_8601": "2025-02-27T23:57:20.116144Z",
"url": "https://files.pythonhosted.org/packages/bc/13/a1f438a0570ac8113f30bc0ea4c32f5422d344a6291f95237b68fa5d5316/ipaacar_python-0.1.12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-27 23:57:20",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ipaacar-python"
}