Sylk CLI, Build and Manage your Protocol Buffers.
Project description
#Sylk build CLI
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, 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?
- Protobuf-Centric: Designed to enhance your experience in working with Protocol Buffers for any project.
- Multi-Language Support: Use Python, TypeScript, Go, or NodeJS for your protobuf implementations. More languages are in the pipeline!
- 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.
Installation
Install from pip
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
- 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
Note Please refer to CLI docs 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 project run the following command:
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)
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
cd <YourProject>
After you are under the new project directory you can go ahead and create sylk.build resources with those simple commands:
Note Please note that every sub-command of
generate
andnew
can be shortend with the first letter e.g :sylk g p
is equivalent tosylk generate package
# 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 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).
You can now build your project and run your server with those simple commands:
# 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 tosylk 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
withsylk
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
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
Created with love by Sylk team. 2023 © Sylk Tchnologies, Inc.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file sylk-0.4.2-py3-none-any.whl
.
File metadata
- Download URL: sylk-0.4.2-py3-none-any.whl
- Upload date:
- Size: 445.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87cd9972a10e1927bbdd4a6bc493baaa69f3ee762da0703edbfd2252568eab15 |
|
MD5 | 29e2345211355307aa3da05b9e96c111 |
|
BLAKE2b-256 | 735e4155884bbc02f7b7a31a7ced0450a215bd5239afe06e3913e93987c9df3e |