Grpc Web Chat

screenshot of Grpc Web Chat
vue
vuetify

A simple project demonstrating how both a Go and Java back end can power the same Vue.js front end using gRPC.

Overview

The gRPC Web Chat project is an exciting initiative that showcases how to utilize both Go and Java back ends to power a shared Vue.js front end. This project highlights the flexibility of using different server technologies while maintaining a consistent client experience. The application utilizes gRPC for efficient communication, and the architecture is designed with modern frameworks and tools that enhance both performance and user experience. While the project is still in progress, it already offers a glimpse into the potential of gRPC in web applications.

With the front end built in TypeScript using the Vue.js framework and complemented by Vuetify, the user interface is not only visually appealing but also highly functional. The integration of the Envoy Proxy enables seamless communication between the browser and the gRPC servers, ensuring that developers can build robust applications that handle real-time messaging effectively.

Features

  • Multi-Language Support: The project showcases both Java and Go back ends, allowing developers the flexibility to choose their preferred language while still sharing a unified front end.

  • Vue.js Integration: Utilizes the popular Vue.js framework along with Vuetify for a modern, responsive user interface that enhances user interaction.

  • gRPC Technology: Implements gRPC for high-performance communication between the front end and back ends, optimizing data exchange and response times.

  • Secure Connections: Utilizes TLS/SSL to enable secure HTTP2 connections, ensuring that all communications are encrypted and secure.

  • Docker Support: Designed with Docker in mind, allowing for easy setup and deployment of the application across different environments.

  • Automated Build Process: The Java project supports automated builds through Maven, simplifying the development workflow by generating necessary files and certificates automatically.

  • Envoy Proxy: Integrates Envoy Proxy to effectively manage requests and responses between the client and server, streamlining the development process.

  • Development in Progress: The project is evolving, constantly adding new features and enhancements to adapt to modern needs and feedback from its users.

vue
Vue

Vue.js is a lightweight and flexible JavaScript framework that allows developers to easily build dynamic and reactive user interfaces. Its intuitive syntax, modular architecture, and focus on performance make it a popular choice for modern web development.

vuetify
Vuetify

Vuetify is a no design skills required UI Library with beautifully handcrafted Vue Components.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.