Hopeit Engine: Microservices with Streams
Project description
## hopeit.engine
Docs: https://hopeitengine.readthedocs.io/en/latest/
### Engine development README
#### Install locally for apps or plugins development:
- Install Python, versions from 3.9 to 3.12 are currently supported
- Create and activate a virtual environment (recommended)
- Run from hopeit.engine project root
```
make dev-deps && make install
```
- Now hopeit.engine package should be installed into your virtual/conda env linked to the source code in ./src
- Then you can create your apps or plugins and run the server
#### Install from Python Package Index
- Install Python, versions from 3.9 to 3.12 are currently supported
- Create and activate a virtual environment (recommended)
- Install hopeit.engine
Install core hopeit.engine lib:
```
pip install "hopeit.engine"
```
Install extras needed to run as a server and command line tools:
```
pip install "hopeit.engine[web,cli]"
```
#### Configure
- Create server configuration json file
- See [configuration examples](./config/)
- Create apps configuration and python files
- See [apps examples](../apps/examples/)
- Optionally you can develop plugins, similar to apps but can be shared
- See available [plugins](../plugins/)
#### Start http server
- Example starting a single app/microservice
```
python -m hopeit.server.web --config-files=server-config.json,app-folder/config/app-config.json
```
- Additional options:
```
--config-files: comma-separated file of config files to load, starting with server config, then plugins, then apps
--api-file: path to openapi complaint json specification
--host: server host address or name, default is --host=0.0.0.0
--port: indicates to listen on another port number, default is --port=8020
--path: indicates to listen in a unix socket path, default is disabled
--start-streams: indicates to auomatically start events of type STREAM when starting server
```
- Example starting a single app that depends on plugins:
```
python engine/server/web.py --config-files=server-config.json,plugin-foler/config/plugin-config.json,app-folder/config/app-config.json
```
### Tools for Engine Development
- To install development dependencies, from engine folder run:
```
make dev
```
- To run tests
```
make test
```
- To run static code checks (types, style)
```
make check
```
- To create distribution library (hopeit.engine)
```
make dist
```
- To install engine in local python environment
```
make install
```
- Examples: to install plugin or app in virtual environment
- to use existing app and plugins, you will need to obtain also a configuration file for each app and plugin. install-app will only install source code.
```
make PLUGINFOLDER=plugins/auth/basic-auth install-plugin
make APPFOLDER=apps/examples/simple-example install-app
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hopeit_engine-0.25.2.tar.gz
(73.3 kB
view details)
Built Distribution
File details
Details for the file hopeit_engine-0.25.2.tar.gz
.
File metadata
- Download URL: hopeit_engine-0.25.2.tar.gz
- Upload date:
- Size: 73.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3345a9ca2d6f15e5c777cb94dc35e34a025d4801cdbbb481ba7fb8360e9a0ccb |
|
MD5 | 2118ea45bbc748c0f5decf888dee03ec |
|
BLAKE2b-256 | 60b5ab3f87acb0c27f22bba1e2501016933e2dbf81926010e37f863555b88fb7 |
File details
Details for the file hopeit.engine-0.25.2-py3-none-any.whl
.
File metadata
- Download URL: hopeit.engine-0.25.2-py3-none-any.whl
- Upload date:
- Size: 85.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 076f39c695303ad8e7b7a1585d5bae995326ee70bea59acf2f8d2e22b9a49f31 |
|
MD5 | c39641c41d37582b98e46fe4a1e263bd |
|
BLAKE2b-256 | 3bb1ee44947d8673b44bb0fb8eed604d922d58240891f0ed3661c86c0544bb56 |