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+
Metadata
Release files for silvera 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| silvera-0.3.1.tar.gz | 55.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| silvera-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 134.1 kB
Release files / silvera-0.3.1.tar.gz
| Download URL | silvera-0.3.1.tar.gz |
|---|---|
| Size | 55.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b08bfa5b51ca912d782d50e2864258a8c15fc21fa78bc918c2b74ea62181326c
|
|
BLAKE2b-256 checksum How to use checksums |
a5a67e068825b8e09f8daa20da05972fc7252d07691a011fcc6ab1417b80ff4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.4
|
Release files / silvera-0.3.1-py3-none-any.whl
| Download URL | silvera-0.3.1-py3-none-any.whl |
|---|---|
| Size | 78.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
df5c9f374f966c2fb4a5075d75aeca727c7f4c216c8ce8a02ce7e7bf1a12d940
|
|
BLAKE2b-256 checksum How to use checksums |
6e198ebae0773654ee20d22b860a5ead4e04d6d5911d00da43d3dd0941eb0470
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.4
|