Skip to content

Commit 9d19143

Browse files
committed
docs: 📝 add README
1 parent 58e3eb1 commit 9d19143

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

README.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Shiki Server
2+
3+
This is the backend service for Shiki, a real-time chat application built with Rust and Actix. It provides WebSocket, HTTP API, and WebRTC functionality for a robust, asynchronous communication platform.
4+
5+
## Features
6+
7+
- WebSocket server for real-time messaging
8+
- RESTful API endpoints
9+
- WebRTC support for peer-to-peer communication
10+
- Asynchronous architecture for high performance
11+
- MongoDB integration for data persistence
12+
- Redis for session management and caching
13+
- Cloudinary integration for media handling
14+
15+
## Technologies Used
16+
17+
- Rust
18+
- Actix web framework
19+
- WebSocket (via Actix)
20+
- WebRTC (via webrtc_unreliable)
21+
- MongoDB
22+
- Redis
23+
- Cloudinary
24+
25+
## Setup
26+
27+
1. lone the repository
28+
2. Create a .env file in the root directory with the following variables:
29+
30+
```bash
31+
MONGODB_URI=your_mongodb_connection_string
32+
SESSION_KEY=your_session_key
33+
SERVER_URL=your_server_url
34+
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
35+
CLOUDINARY_API_KEY=your_cloudinary_api_key
36+
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
37+
```
38+
39+
3. Run `cargo run`
40+
41+
## Architecture
42+
43+
The application uses Actix for the web server and WebSocket handling. It integrates MongoDB for data storage and Redis for session management. The WebRTC functionality is provided through the `webrtc_unreliable` crate.
44+
45+
## Contributing
46+
47+
Contributions are welcome! Please feel free to submit a Pull Request.
48+
49+
## License
50+
51+
MIT License

0 commit comments

Comments
 (0)