Skip to main content

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)

Source distribution for silvera 0.3.1
File Size Uploaded
silvera-0.3.1.tar.gz 55.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for silvera 0.3.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page