Project structure
The default structure of a Sylk project created with CLI looks like the following:
. # root of the application
├──── .sylk # files used internally and should not be modified once created
├──── bin # executable files used internally by the CLI but could be in use manually
├──── protos # the server module
│ ├──── domain # your root domain
│ │ ├ <Package>.proto
│ │ └ <Service>.proto
├──── server # the server module
│ └ server.py # include register(), bootstrap() and destroy() functions
├──── services
│ ├──── protos # compiled protobufs files
│ │ ├──── domain
│ │ │ ├ __init__.py
│ │ │ ├ <Package_pb2_grpc>.py
│ │ │ ├ <Package_pb2>.py
│ │ │ ├ <Service_pb2_grpc>.py
│ │ │ └ <Service_pb2>.py
│ ├──── utils # business logic of the project split into subfolders per API
│ │ └──── (vendor-name)
│ │ ├ __init__.py
│ │ ├ <VendorPackage_pb2_grpc>.py
│ │ ├ <VendorPackage_pb2>.py
│ │ └ <VendorService_pb2_grpc>.py
│ │ └ <VendorService_pb2>.py
│ └ <Service>.py # service implemantation code of RPC's
├ .env
├ .gitignore
├ config.py # configuration file for project level
└ sylk.json # the main "db" that holds project resources