Skip to content

Commit

Permalink
Pubsub implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
FabienD committed Jan 21, 2024
0 parents commit 642a9fb
Show file tree
Hide file tree
Showing 65 changed files with 10,438 additions and 0 deletions.
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

61 changes: 61 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# GUI for Google Cloud Plateform Emulators

## Description

This application provides a basic UI for interacting [Google Cloud Platform™ Emulators](https://cloud.google.com/sdk/gcloud/reference/beta/emulators).

This application is **not an official** Google application.

The application is under heavy development and doesn't cover all emulator product APIs. I started this project to test Tauri App, then thought it would be intersting to provide something more functional. As an exploration project, I didn't cover features by tests.

As **Open source project**, feel free to participate, contribute, fork, etc. :

[https://github.com/FabienD/gui-for-gcp-emulator](https://github.com/FabienD/gui-for-gcp-emulator)


## Features

- PubSub emulator support :

- Create / Delete Pubsub topic
- Publish a message in a topic
- Create / Delete a topic Subscription (Pull & Push)
- Pull a message from a Subscription

![GUI for GCP - Home](./doc/assets/gcp_gui_home_preview.png)
![GUI for GCP - Pubsub topic](./doc/assets/gcp_gui_pubsub_topic_preview.png)
![GUI for GCP - Pubsub subscription](./doc/assets/gcp_gui_pubsub_subscription_preview.png)
![GUI for GCP - Publish a message](./doc/assets/gcp_gui_pubsub_topic_publish.png)
![GUI for GCP - Pull a message](./doc/assets/gcp_gui_pubsub_subscription_pull_message.png)

## Next steps

- Ehance UI and support for PubSub emulator.

- Add UI and support for Firestore emulator.
- Add UI and support for Datastore emulator.
- Add UI and support for Bigtable emulator.
- Add UI and support for Spanner emulator.


## Build / Run the application

[Prerequisites, depends on the OS](https://tauri.app/fr/v1/guides/getting-started/prerequisites)

### Run in dev mode

npm run tauri dev

### Build

npm run tauri build


## Technologies used

- [Tauri App](https://tauri.app/)
- [Rust](https://www.rust-lang.org/)
- [React](https://react.dev/)
- [TypeScript](https://www.typescriptlang.org/)
- [Material UI](https://material-ui.com/)
- [Tailwind CSS](https://tailwindcss.com/)
Binary file added doc/assets/gcp_gui_home_preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/assets/gcp_gui_pubsub_topic_preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/assets/gcp_gui_pubsub_topic_publish.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
services:

pubsub:
container_name: emu-pubsub
image: 'google/cloud-sdk:emulators'
command: 'gcloud --user-output-enabled --log-http beta emulators pubsub start --project=${GCP_PROJECT_ID:-fake} --host-port=0.0.0.0:8085'
ports:
- '8085:8085'

# firestore:
# container_name: emu-firestore
# image: 'google/cloud-sdk:emulators'
# command: 'gcloud --user-output-enabled --log-http beta emulators firestore start --project=${GCP_PROJECT_ID:-fake} --host-port=0.0.0.0:8086'
# ports:
# - '8086:8086'

networks:
default:
name: 'emulators'
13 changes: 13 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>GUI for GCP emulators</title>
</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading

0 comments on commit 642a9fb

Please sign in to comment.