sylk


Namesylk JSON
Version 0.4.2 PyPI version JSON
download
home_page
SummarySylk CLI, Build and Manage your Protocol Buffers.
upload_time2023-09-17 21:56:15
maintainer
docs_urlNone
author
requires_python>=3.7
licenseCopyright (c) 2023 sylk.build Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords grpc micro-services cli protobuf framework
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            #Sylk build CLI

[<img height="34" alt="Sylk Logo" src="https://s3.eu-central-1.amazonaws.com/assets.sylk.build/logo/sylk-logo-full.png">](https://sylk.build)      [<img height="16" alt="Sylk Downloads" src="https://static.pepy.tech/personalized-badge/sylk?period=total&units=international_system&left_color=brightgreen&right_color=grey&left_text=Downloads">](https://pepy.tech/project/sylk)    [<img height="16" alt="Python 3.7+" src="https://img.shields.io/badge/python-3.7+-blue.svg">](https://www.python.org/downloads/release/python-370/)


[Sylk.build](https://sylk.build) is your go-to toolkit for accelerating Protocol Buffers (protobuf) development across multiple languages. with Sylk.build, you can quickly develop, deploy, and scale your data structures, irrespective of the programming language you're using.

## Elevate Your Protobuf Development Experience

Welcome to [sylk.build](https://www.sylk.build), the ultimate toolkit for working with Protocol Buffers (`protobuf`). We're here to simplify your serialization and data interchange tasks using cutting-edge technology stacks like `HTTP2` and `gRPC`.

### Why Choose Sylk.build?

1. **Protobuf-Centric**: Designed to enhance your experience in working with Protocol Buffers for any project.
2. **Multi-Language Support**: Use Python, TypeScript, Go, or NodeJS for your protobuf implementations. More languages are in the pipeline!
3. **Flexibility and Efficiency**: Thanks to protobuf, enjoy high-speed, efficient data serialization and deserialization.

| **Language**  | **Server** | **Client** | **Status**  |
|---------------|------------|------------|-------------|
| Python        | **V**      | **V**      | Stable      |
| TypeScript    | **V**      | **V**      | Stable      |
| Go            | **V**      | **V**      | Stable      |
| webpack       | --         | **V**      | Stable      |
| Java          | **X**      | **X**      | Planned     |
| C#.NET        | **X**      | **X**      | Planned     |
| Rust          | **X**      | **X**      | Planned     |

👉 **Learn More**: Dive deeper into the capabilities of sylk.build through our [Official Documentation](https://www.docs.sylk.build).

# Installation
Install from pip
```sh
pip install sylk
```
# Features:

- __CLI__ Well structerd CLI wrapper to create, edit, run and debug a RPC call to gRPC services
- __Generated Code__ Auto-Generated code classes for Services implemantations and client stubs
    * [Python](./docs/source/languages/python.md)
    * [Typescript](./docs/source/languages/typescript.md)
    * [Go](./docs/source/languages/go.md)
- __Plugins__ Highly pluggable API allow us to create and publish "Extensions" without breaking the code:
    * Readme generator
    * Languages Builder - (Python, Typescript & Go)
    * Proto Builder
    * Dockerize (In-development)
    * Migrate gRPC services to sylk.build project
- __Templating__ As a sylk.build project grows you can template it and share it to your peers for remote work (Branching) or as a 'Built-in' template to be used by other co-workers
- __Unified Extensions__ We have been working on unification process of `Protobuf` Extensions (Calles Custom Options) which will allow us in the future to release more pluggable features directly into your sylk.build workspace

__Tutorials:__
- [Quick Start](https://www.sylk.build/docs/quick-start)

## Quick Start 

> __Note__ Please refer to [CLI docs](https://docs.sylk.build/) for any question you got, also make sute to use the CLI help `sylk --help` should give you an additional information on every command you may possibly run

To create a [new sylk.build](https://docs.sylk.build/cli/commands#newn) project run the following command:
```sh
sylk new <YourProject>
```
> __Note__ you can create a new project based on template to get started quickly
Sample Python server (Clients are available both in TS + PY)
```sh
sylk n <YourProject> --template @sylk/TodoAppPy
```

Then you will need to navigate into your project

> __Note__ if you didnt specified the `--path` argument when creating new project by default it will create a project under your current directory

```sh
cd <YourProject>
```

After you are under the new project directory you can go ahead and [create sylk.build resources](./docs/source/commands/commands.md#sylk-generate) with those simple commands:

> __Note__ Please note that every sub-command of `generate` and `new` can be shortend with the first letter e.g : `sylk g p` is equivalent to `sylk generate package`

```sh
# Generate new package to hold messages
sylk generate package foo.bar.v1
# Generate new service to hold RPC's (Methods)
sylk generate service foo.bar.v1.SomeService
# Generate message under specified package
sylk generate message foo.bar.v1.SomeMessage
# Generate RPC (Method) under specified service
# Same as running `sylk g r foo/bar/v1/SomeService/GetSomething`
sylk generate rpc foo.bar.v1.SomeService.GetSomething
```
<!-- > __Note__ Make sure before creating new RPC on service that you have imported at least 1 package to be used by the service. for more information visit -> [Package Docs](https://docs.sylk.build/cli/resources/package) -->

> __Note__ Passing full resource paths can be used with __'/'__ to resamble the filesystem paths or __'.'__ seperators as native protobuf syntax, both act the same.

> __Note__ You can create resource with thier full paths or just with passing the resource name itself, the CLI prompter will ask you which parent you want to attach the new resource.

After you had generated your resources for the project and modified the code (See the docs for more explanation on how to develop your project and make changes [Sample Project](https://docs.sylk.build/cli/quick-start)).

You can now [build your project](https://docs.sylk.build/cli/commands#build) and [run your server](https://docs.sylk.build/cli/commands#run) with those simple commands:

```sh
# First build your project
sylk build
# Then run the server
sylk run 
```

> __Note__ you can auto-build your resources if applicable straight when you are generating them with adding `--build` argument to `sylk generate` comands.

You can use now your client code that has been autogenerated in your specified language(s) on creating the project.

> __Pro-Tip:__ you can always make your commands even shorter with replacing `sylk` with `sylk`

# CLI Usage

Get to know the commands supported by sylk.build CLI and start to use their powers !
__All listed commands can be found here:__
[sylk.build CLI API](https://docs.sylk.build/cli/commands)

The sylk CLI module is essantially a wrapper to the `Architect API` which is just to construct a well defined resource metadata which later on can be used by the `Builder API` to build all resources files (Code files & .proto files)

> __Note__ Each sylk.build CLI command can be called with the abbreviated `sylk`

> __Note__ The CLI has verbose logging system that can be changed accoriding to your needs. we do recommand to keep it to ERROR as default to not overload you with multiple lines for each command - to change the default behaviour run your commands with `sylk --loglevel DEBUG <sub-command>`

## Contribute
Your contributions are always welcome! For guidelines on how to contribute, please check our development guidelines.

## Two Modes of Interaction
- **CLI**: Kick-start your protobuf projects with our easy-to-use CLI.
- **Python API**: Ideal for advanced customization and control over your protobuf files.

## Additional Resources
- [Awesome gRPC](https://github.com/grpc-ecosystem/awesome-grpc)
- [Google's API Design Guide](https://cloud.google.com/apis/design/)

---
__Created with love by Sylk team. 2023 © Sylk Tchnologies, Inc.__

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "sylk",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "grpc,micro-services,cli,protobuf,framework",
    "author": "",
    "author_email": "Sylk Developers <contact@sylk.build>",
    "download_url": "",
    "platform": null,
    "description": "#Sylk build CLI\n\n[<img height=\"34\" alt=\"Sylk Logo\" src=\"https://s3.eu-central-1.amazonaws.com/assets.sylk.build/logo/sylk-logo-full.png\">](https://sylk.build)      [<img height=\"16\" alt=\"Sylk Downloads\" src=\"https://static.pepy.tech/personalized-badge/sylk?period=total&units=international_system&left_color=brightgreen&right_color=grey&left_text=Downloads\">](https://pepy.tech/project/sylk)    [<img height=\"16\" alt=\"Python 3.7+\" src=\"https://img.shields.io/badge/python-3.7+-blue.svg\">](https://www.python.org/downloads/release/python-370/)\n\n\n[Sylk.build](https://sylk.build) is your go-to toolkit for accelerating Protocol Buffers (protobuf) development across multiple languages. with Sylk.build, you can quickly develop, deploy, and scale your data structures, irrespective of the programming language you're using.\n\n## Elevate Your Protobuf Development Experience\n\nWelcome to [sylk.build](https://www.sylk.build), the ultimate toolkit for working with Protocol Buffers (`protobuf`). We're here to simplify your serialization and data interchange tasks using cutting-edge technology stacks like `HTTP2` and `gRPC`.\n\n### Why Choose Sylk.build?\n\n1. **Protobuf-Centric**: Designed to enhance your experience in working with Protocol Buffers for any project.\n2. **Multi-Language Support**: Use Python, TypeScript, Go, or NodeJS for your protobuf implementations. More languages are in the pipeline!\n3. **Flexibility and Efficiency**: Thanks to protobuf, enjoy high-speed, efficient data serialization and deserialization.\n\n| **Language**  | **Server** | **Client** | **Status**  |\n|---------------|------------|------------|-------------|\n| Python        | **V**      | **V**      | Stable      |\n| TypeScript    | **V**      | **V**      | Stable      |\n| Go            | **V**      | **V**      | Stable      |\n| webpack       | --         | **V**      | Stable      |\n| Java          | **X**      | **X**      | Planned     |\n| C#.NET        | **X**      | **X**      | Planned     |\n| Rust          | **X**      | **X**      | Planned     |\n\n\ud83d\udc49 **Learn More**: Dive deeper into the capabilities of sylk.build through our [Official Documentation](https://www.docs.sylk.build).\n\n# Installation\nInstall from pip\n```sh\npip install sylk\n```\n# Features:\n\n- __CLI__ Well structerd CLI wrapper to create, edit, run and debug a RPC call to gRPC services\n- __Generated Code__ Auto-Generated code classes for Services implemantations and client stubs\n    * [Python](./docs/source/languages/python.md)\n    * [Typescript](./docs/source/languages/typescript.md)\n    * [Go](./docs/source/languages/go.md)\n- __Plugins__ Highly pluggable API allow us to create and publish \"Extensions\" without breaking the code:\n    * Readme generator\n    * Languages Builder - (Python, Typescript & Go)\n    * Proto Builder\n    * Dockerize (In-development)\n    * Migrate gRPC services to sylk.build project\n- __Templating__ As a sylk.build project grows you can template it and share it to your peers for remote work (Branching) or as a 'Built-in' template to be used by other co-workers\n- __Unified Extensions__ We have been working on unification process of `Protobuf` Extensions (Calles Custom Options) which will allow us in the future to release more pluggable features directly into your sylk.build workspace\n\n__Tutorials:__\n- [Quick Start](https://www.sylk.build/docs/quick-start)\n\n## Quick Start \n\n> __Note__ Please refer to [CLI docs](https://docs.sylk.build/) for any question you got, also make sute to use the CLI help `sylk --help` should give you an additional information on every command you may possibly run\n\nTo create a [new sylk.build](https://docs.sylk.build/cli/commands#newn) project run the following command:\n```sh\nsylk new <YourProject>\n```\n> __Note__ you can create a new project based on template to get started quickly\nSample Python server (Clients are available both in TS + PY)\n```sh\nsylk n <YourProject> --template @sylk/TodoAppPy\n```\n\nThen you will need to navigate into your project\n\n> __Note__ if you didnt specified the `--path` argument when creating new project by default it will create a project under your current directory\n\n```sh\ncd <YourProject>\n```\n\nAfter you are under the new project directory you can go ahead and [create sylk.build resources](./docs/source/commands/commands.md#sylk-generate) with those simple commands:\n\n> __Note__ Please note that every sub-command of `generate` and `new` can be shortend with the first letter e.g : `sylk g p` is equivalent to `sylk generate package`\n\n```sh\n# Generate new package to hold messages\nsylk generate package foo.bar.v1\n# Generate new service to hold RPC's (Methods)\nsylk generate service foo.bar.v1.SomeService\n# Generate message under specified package\nsylk generate message foo.bar.v1.SomeMessage\n# Generate RPC (Method) under specified service\n# Same as running `sylk g r foo/bar/v1/SomeService/GetSomething`\nsylk generate rpc foo.bar.v1.SomeService.GetSomething\n```\n<!-- > __Note__ Make sure before creating new RPC on service that you have imported at least 1 package to be used by the service. for more information visit -> [Package Docs](https://docs.sylk.build/cli/resources/package) -->\n\n> __Note__ Passing full resource paths can be used with __'/'__ to resamble the filesystem paths or __'.'__ seperators as native protobuf syntax, both act the same.\n\n> __Note__ You can create resource with thier full paths or just with passing the resource name itself, the CLI prompter will ask you which parent you want to attach the new resource.\n\nAfter you had generated your resources for the project and modified the code (See the docs for more explanation on how to develop your project and make changes [Sample Project](https://docs.sylk.build/cli/quick-start)).\n\nYou can now [build your project](https://docs.sylk.build/cli/commands#build) and [run your server](https://docs.sylk.build/cli/commands#run) with those simple commands:\n\n```sh\n# First build your project\nsylk build\n# Then run the server\nsylk run \n```\n\n> __Note__ you can auto-build your resources if applicable straight when you are generating them with adding `--build` argument to `sylk generate` comands.\n\nYou can use now your client code that has been autogenerated in your specified language(s) on creating the project.\n\n> __Pro-Tip:__ you can always make your commands even shorter with replacing `sylk` with `sylk`\n\n# CLI Usage\n\nGet to know the commands supported by sylk.build CLI and start to use their powers !\n__All listed commands can be found here:__\n[sylk.build CLI API](https://docs.sylk.build/cli/commands)\n\nThe sylk CLI module is essantially a wrapper to the `Architect API` which is just to construct a well defined resource metadata which later on can be used by the `Builder API` to build all resources files (Code files & .proto files)\n\n> __Note__ Each sylk.build CLI command can be called with the abbreviated `sylk`\n\n> __Note__ The CLI has verbose logging system that can be changed accoriding to your needs. we do recommand to keep it to ERROR as default to not overload you with multiple lines for each command - to change the default behaviour run your commands with `sylk --loglevel DEBUG <sub-command>`\n\n## Contribute\nYour contributions are always welcome! For guidelines on how to contribute, please check our development guidelines.\n\n## Two Modes of Interaction\n- **CLI**: Kick-start your protobuf projects with our easy-to-use CLI.\n- **Python API**: Ideal for advanced customization and control over your protobuf files.\n\n## Additional Resources\n- [Awesome gRPC](https://github.com/grpc-ecosystem/awesome-grpc)\n- [Google's API Design Guide](https://cloud.google.com/apis/design/)\n\n---\n__Created with love by Sylk team. 2023 \u00a9 Sylk Tchnologies, Inc.__\n",
    "bugtrack_url": null,
    "license": "Copyright (c) 2023 sylk.build  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Sylk CLI, Build and Manage your Protocol Buffers.",
    "version": "0.4.2",
    "project_urls": {
        "documentation": "https://docs.sylk.build",
        "homepage": "https://www.sylk.build/",
        "repository": "https://github.com/sylk-build/sylk"
    },
    "split_keywords": [
        "grpc",
        "micro-services",
        "cli",
        "protobuf",
        "framework"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "735e4155884bbc02f7b7a31a7ced0450a215bd5239afe06e3913e93987c9df3e",
                "md5": "29e2345211355307aa3da05b9e96c111",
                "sha256": "87cd9972a10e1927bbdd4a6bc493baaa69f3ee762da0703edbfd2252568eab15"
            },
            "downloads": -1,
            "filename": "sylk-0.4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "29e2345211355307aa3da05b9e96c111",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 445016,
            "upload_time": "2023-09-17T21:56:15",
            "upload_time_iso_8601": "2023-09-17T21:56:15.999951Z",
            "url": "https://files.pythonhosted.org/packages/73/5e/4155884bbc02f7b7a31a7ced0450a215bd5239afe06e3913e93987c9df3e/sylk-0.4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-17 21:56:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sylk-build",
    "github_project": "sylk",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "lcname": "sylk"
}
        
Elapsed time: 0.12627s