A Chat & Messaging API Server
i9chat is a full-fledged chat and messaging API server built in Go It supports all major chat application application features with a scalable, production-grade arcitecture, serving as a foundation for building apps like WhatsApp and Discord clones.
- Go - Programming Language
- Fiber - REST API Framework
- Neo4j - Graph DBMS
- CypherQL - Query Language for a Graph database
- WebSockets - Full-duplex, Bi-directional communication protocol
- Redis Key/Value Store (Cache)
- Redis Streams
- Redis Pub/Sub
- Redis Queue (via LPOP, RPUSH, RPOP, LPUSH)
- Google Cloud Storage
- Docker
- Ubuntu Linux
- VSCode
- Git & GitHub Version Control
- GitHub Actions CI
- Intro
- Technologies
- Table of Contents
- Features
- Technical Highlights
- API Documentation
- Upcoming features
The following are the features supported by this API. Visit the API documentation for implementation guides.
- Find a user by their username (exact matching only)
- Find users nearby (via geolocation coordinates)
Realtime chatting with users of the application, and in groups.
Start by finding a user by their username.
- Realtime user presence (online/offline) status and last seen.
- Supports various message types including:
- Text
- Voice
- Image(s) with caption
- Video(s) with caption
- Audio
- File attachments (Documents)
- React to Messages
- Reply to messages
- Delivered and Read receipts
- Group creation
- Joining group
- Leaving group (you can't be re-added, unless you re-join)
- Total members count
- Online members count
- Group admin management
- Add members
- Remove members (they can't re-join, unless re-added)
- Make member an admin
- Remove member from admins
- Chat messages are delivered to target users in realtime.
- Clients receive user "presence" and "last seen" updates (upon subscription)
- Real-time read receipts
REST request/response Communication: Click Here
WebSocket Real-time Communication: Click Here
The following is a list of features to be supported by this Social Media Backend API.
- Image and Video processing and upload pipeline for user-generated media and post content and chat messages.