Skip to main content

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

silvera-0.3.1.tar.gz (55.7 kB view details)

Uploaded Source

Built Distribution

silvera-0.3.1-py3-none-any.whl (78.4 kB view details)

Uploaded Python 3

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

Hashes for silvera-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b08bfa5b51ca912d782d50e2864258a8c15fc21fa78bc918c2b74ea62181326c
MD5 161632d062b64139e53a6654cf993543
BLAKE2b-256 a5a67e068825b8e09f8daa20da05972fc7252d07691a011fcc6ab1417b80ff4a

See more details on using hashes here.

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

Hashes for silvera-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 df5c9f374f966c2fb4a5075d75aeca727c7f4c216c8ce8a02ce7e7bf1a12d940
MD5 cae72ca8ab9a66d28c639268d05bc907
BLAKE2b-256 6e198ebae0773654ee20d22b860a5ead4e04d6d5911d00da43d3dd0941eb0470

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page