https://github.com/ji-podhead/protobuffctl
A CLI, API Server and Dashboard that enables you to automate and test all protobuf functions. Manage,create and delete protobuff Components. Sync and Roll back like with version controll.
https://github.com/ji-podhead/protobuffctl
filewatcher grpc-dashboard grpc-go grpc-java grpc-kotlin grpc-node grpc-python grpc-testing grpc-web node protobuff protobuff-generator
Last synced: 2 months ago
JSON representation
A CLI, API Server and Dashboard that enables you to automate and test all protobuf functions. Manage,create and delete protobuff Components. Sync and Roll back like with version controll.
- Host: GitHub
- URL: https://github.com/ji-podhead/protobuffctl
- Owner: ji-podhead
- License: gpl-3.0
- Created: 2024-03-12T00:48:17.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-14T07:22:12.000Z (over 1 year ago)
- Last Synced: 2025-04-05T20:23:14.027Z (9 months ago)
- Topics: filewatcher, grpc-dashboard, grpc-go, grpc-java, grpc-kotlin, grpc-node, grpc-python, grpc-testing, grpc-web, node, protobuff, protobuff-generator
- Language: JavaScript
- Homepage: https://ji-podhead.github.io/protobuffctl/
- Size: 23.3 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**| [Docs ](https://ji-podhead.github.io/protobuffctl/)|[API](https://ji-podhead.github.io/protobuffctl/API) | [CLI Guide](https://ji-podhead.github.io/protobuffctl/guides) | [Architecture](https://ji-podhead.github.io/protobuffctl/architecture) |**
# Protobuffctl
[](https://www.npmjs.com/package/protobuffctl)
[](https://www.npmjs.com/package/protobuffctl)
[](https://badge.fury.io/js/protobuffctl)
## Automate Your Protobuf Workflow
Protobuffctl is a comprehensive JavaScript API designed to streamline Protobuf development, offering features for creation, management, and automatic Protobuf generation, along with API server integration and a built-in dashboard for monitoring, testing and debugging.
## Key Features
- [Protobuffctl](https://github.com/ji-podhead/protobuffctl) offers an [API](https://ji-podhead.github.io/protobuffctl/) that enables you to automate all Protobuf functions.
- Manage `message types`, `fields`, `services`, `methods`, and `enums` by using **CLI commands** or the **API server**.
- **Automatically generates** the corresponding **Protobuf files** when making changes to the protofiles.
- Stores all components in the **local Componentregistry**.
- Sync with **other registries** like Gitey or PostgreSQL.
- **Rollback** by using a local safe-file or by using an external database, similar to **version control**.
- **Preview** the Protofile code before actually building it and export any component to **JSON**.
- Comes with a **Dashboard** for demo, debugging, and **testing**.
- **Monitoring** for individual `message types` and `services` using the dashboard and [D3.js](https://d3js.org/).
- The middleware ensures **ACID** compliance and **prevents race conditions**.
---
## Getting Started
**Install:**
```JavaScript
npm i protobuffctl
```
**Docs:** [see docs](https://ji-podhead.github.io/protobuffctl/guides)
**CLI Guide:** [see docs/guides](https://github.com/ji-podhead/protobuffctl/blob/main/docs/CLI-guide.md)
---
### Update
- serialize **Protobuff Registry** for local storage β
- Exports to JSON β
- **automated Proto-gen**: using my [protoc-helper repo](https://github.com/ji-podhead/protoc-helper) β
- creadted a **CLI** using commander β
- changed codeBase and **removed redundant recoursion** using hashlookuptables and relations β
- Fast Saving and Loading using **Service Worker as Middleware** that keeps the process alive β
- added the **Api Server** β
- added a bun react **Dashboard** β
## Comming up
- Set up **File Watcher** to monitor your proto files for any changes. π§
- create **VC CODE EXTENSION** to manage the api in vs code π§
- sync with **external DB** using kafka and cassandra π§
- finish **Dashboard** and use a web compiler for demo π§
- implement UUID hashing logic π§
- add **tests** to Dashboard and a gRPC debug-Server π§
---
## Flow Chart
```
Architecture:
βββββββββββββ ββββββββββββββββββββββββ
β Dashboard β β external Database β
βββββββ²ββββββ ββββββββββββ²ββββββββββββ
β β
βββββββΌββββββ ββββββββββΌβββββββββ βββββββββββββββ
β Api ServerβββββΊ Api Wrapper ββββΊ CLI β
βββββββββββββ ββββββββββ²βββββββββ βββββββββββββββ
β
ββββββββββΌββββββββββ
β Service-Worker β
ββββββββββ²ββββββββββ
β βββββββββββββββββββ
ββββββββΌββββββββ βββββΊ HashLookUpTable β
β β β βββββββββββββββββββ
β Protobuffctl βββ€
β β β βββββββββββββββ
ββββββββ²ββββββββ βββββββΊ Relations β
ER-Model β βββββββββββββββ
βββββββΌββββββββ
ββββββββββββ β β
βββββββββββββΊProtoFilesβββββββββββΊ β
β βββ²βββ²ββββββ β β
β β β ββββββββββ β β
β β ββββ€ServicesβββββΊ β
β β βββββ²βββββ β β
β β βββββ΄ββββ β β
β β βMethodsββββββΊ Component β
β β βββββ²ββββ β - β
β ββββββ΄β β β Registry |
β βTypesββββββββββ΄βββββββββΊ β
β ββ²ββββ²β β β
β βββββββ΄β β β β
β βNestedββββΌβββββββββββββββββββΊ β
β ββββ²ββ²ββ β β β
ββββ΄βββ β β ββ΄ββββββ β β
βEnumsβββββ βββββ€FieldsββββββββββββββΊ β
βββ¬ββββ ββββββββ β β
βββββββββββββββββββββββββββββββββββΊ β
βββββββββββββββ
```
## Contribution?
π If you're thinking about giving Protobuffctl a little love, you're in the right place. Here's how you can get involved:
### Fork
- **Fork the Repo**: Just head over to GitHub and click the "Fork" button.
- **Clone Your Fork**: Once you've forked the repo, clone it to your computer.
- **Create a New Branch**: Make a new branch for your cool new feature or bug fix. Something descriptive would be awesome!
- **Make Your Changes**: Get coding! π
- **Commit Your Changes**: When you're happy with your changes, commit them with a message that tells us what you did
- **Push Your Changes**: Push your changes back to your fork on GitHub.
- **Open a Pull Request**: If you're ready to share your work with the world, go back to the original Protobuffctl repo and open a pull request from your fork.
### Here are a few other options:
- **reach out via Discord**: DM me via Discord #podhead181818.
- **Start a Discussion**: If you've got something to say, but maybe not something you're ready to code yet, you can start a discussion under the "Discussions" tab with the "Contribution" label.
- **Open an Issue**: If you've found a bug or have a feature request, you can open an issue on GitHub.
Thanks for thinking about contributing! π Whether you're coding, chatting, or just sharing ideas, every contribution helps make Protobuffctl better.