Tool for generating microservice architectures.
Project description
Silvera
Silvera is a declarative language for modeling microservice architectures based on textX, and it is designed in a way that directly implements domain-related design patterns.
Silvera is:
- lightweight and editor-agnostic language - you can use text editor of your choice to write Silvera programs.
- built with heterogeneity in mind - Silvera's compiler can produce code for any programming language or framework since code generators are registered as plugins.
In addition, Silvera uses microservice-tailored metrics to evaluate the architecture of the designed system and automatically generates the documentation. Architecture Evaluation Processor comes with a set of predefined metrics, but you can also add your own!.
Silvera is fully implemented in Python.
Quick intro
Here is a small example where we define a service registry and one microservice.
# setup.si
service-registry ServiceRegistry {
client_mode=False
deployment {
version="0.0.1"
port=9091
url="http://localhost"
}
}
import "setup.si"
service Bookstore {
service_registry=ServiceRegistry
api {
@crud
typedef Book [
@id str isbn
@required str title
@required str author
str category
@required double price
]
@rest(method=GET)
list<Book> listBooks()
@rest(method=GET)
bool bookExists(str isbn)
@rest(method=GET)
double bookPrice(str isbn)
}
}
Installation
You can use pip
to install Silvera:
$ pip install silvera
To verify that you have installed Silvera correctly run the following command:
$ silvera
You should get output like this:
Usage: silvera [OPTIONS] COMMAND [ARGS]...
Options:
--debug Debug/trace output.
--help Show this message and exit.
Commands:
check Checks if created model is valid.
compile Compiles application code into to provided output...
evaluate Evaluates the architecture for given project.
init Creates initial Silvera project
list-generators Lists all currently available code generators
visualize Visualize the architecture for given project.
Feature highlights
-
Designed patterns directly implemented in language
-
Project modularization - imports
-
Project evaluation based on metrics
-
Automatic code generation
-
Support for custom code generators via plugins
User guide
For documentation and tutorials, visit docs: https://alensuljkanovic.github.io/silvera/
Python versions
Tested with Python 3.7.4+
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file silvera-0.3.1.tar.gz
.
File metadata
- Download URL: silvera-0.3.1.tar.gz
- Upload date:
- Size: 55.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b08bfa5b51ca912d782d50e2864258a8c15fc21fa78bc918c2b74ea62181326c |
|
MD5 | 161632d062b64139e53a6654cf993543 |
|
BLAKE2b-256 | a5a67e068825b8e09f8daa20da05972fc7252d07691a011fcc6ab1417b80ff4a |
File details
Details for the file silvera-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: silvera-0.3.1-py3-none-any.whl
- Upload date:
- Size: 78.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df5c9f374f966c2fb4a5075d75aeca727c7f4c216c8ce8a02ce7e7bf1a12d940 |
|
MD5 | cae72ca8ab9a66d28c639268d05bc907 |
|
BLAKE2b-256 | 6e198ebae0773654ee20d22b860a5ead4e04d6d5911d00da43d3dd0941eb0470 |