Sylk CLI

Empowering Protobuf & gRPC Projects

Sylk Core is open source and will always be available for free on GitHub.

Component-Based CLI

Pack your system with small "resources" that serve as building blocks, ranging from simple "string" fields to high-level "Projects" that bring multiple microservices together.

# Install sylk CLI
$ pip install sylk 

# Generate sylk project with well defined structure
$ sylk new todo-app

# Navigate to project and build your service
$ cd todo-app && sylk generate service

# Generate the building blocks
$ sylk generate package
$ sylk generate message

# Define endpoints of your system
$ sylk generate rpc

# Build the code
$ sylk build

Centralized Schema

Ensure consistency and clarity in your APIs with Sylk's centralized schema. Define and manage all your project's API definitions in one central location, making it easy to maintain and update.

// Generated proto
syntax = "proto3";

import "google/protobuf/timestamp.proto";
package public.Todo.v1;

message Todo {
   google.protobuf.Timestamp created_at = 1;
   string title = 2;
   google.protobuf.Timestamp due_date = 3;
   public.Todo.v1.Statuses status = 4;
   string id = 5;
   string description = 6;

enum Statuses {
   UNKNOWN = 0;
   DONE = 1;
   PENDING = 2;
   OVER_DUE = 3;

Flexible Service Construction

Construct multiple nested levels and methods within your APIs, leveraging the native features of your preferred programming language. From simple array responses to streams of nested objects, Sylk CLI offers flexibility and versatility.

Error Reduction and Best Practices

Focus on your data model and functionality while Sylk CLI handles enforcing best practices and eliminating design errors. Benefit from a fault-tolerant CLI that guides you towards industry-standard practices, reducing the risk of common pitfalls and promoting robust development.

Schema Overview

Gain a comprehensive view of your project's schema state with a single command. Use the 'sylk ls' command to explore the properties and structure of your resources. Additionally, visualize the dependencies within your project graph, ensuring a clear understanding of the relationships between components.

$ sylk ls –dependencies

'Listing all dependencies'

[*] || Service: Todos
    ||       |
    ||       Package -- public.API.v1
    ||               |
    ||               Package -- public.Todo.v1
    ||               |
    ||               Package -- google.protobuf.Struct

[*] | Package: public.Todo.v1
    ||       |
    ||        -- google.protobuf.Timestamp

[*] | Package: public.API.v1
    ||       |
    ||        -- public.Todo.v1
    ||       |
    ||        -- google.protobuf.Struct

Simplified Interface to gRPC and HTTP/2

Harness the power of gRPC and HTTP/2 in your distributed systems without the steep learning curve. Sylk CLI provides a simple and intuitive interface, abstracting away the complexities of gRPC and Protocol Buffers (protobuf) syntax. Build and deploy progressive distributed systems effortlessly.

Structured Service Setup

Expedite your project setup with Sylk CLI's streamlined process. Create a fully bootstrapped project with pre-configured directories, ready to accommodate your project schema. Save time and effort by starting with a well-organized project structure.

Auto-Generated Code

Eliminate repetitive and boilerplate code writing across multiple languages. Sylk CLI automatically generates client code files for TypeScript/Node.js, Go, and Python. These code files inherit directly from your project's API schema, ensuring consistent communication between services and reducing development overhead.