Skip to content

A comprehensive, multi-functional social application built with Flutter, connecting Misskey and Flarum, and belonging to CyaniAgent.

License

Notifications You must be signed in to change notification settings

CyaniAgent/CyaniTalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

137 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CyaniTalk

ไธญๆ–‡ | English


Flutter Dart Misskey Flarum Status

CyaniTalk is a diversified, cross-platform social client built with Flutter. It bridges the gap between Misskey (decentralized micro-blogging) and Flarum (structured community forums), offering a unified experience for both casual social interaction and deep technical discussions.

Designed with a Responsive Shell, CyaniTalk adapts seamlessly between mobile (iOS/Android) and desktop (Windows/macOS/Linux) environments, providing native-tier features like real-time streaming and advanced administrative tools.


๐ŸŒŸ Key Features

๐ŸŽจ Adaptive UI/UX

CyaniTalk decouples the navigation logic from the content to provide an ergonomic experience on any device:

  • Mobile: Classic Bottom Navigation Bar for one-handed use.
  • Desktop: Vertical Navigation Rail for wide screens, utilizing a Master-Detail view for efficient browsing.
  • Unified Sections: Access Misskey, Forum, Drive, Messages, and Profile seamlessly.

๐Ÿช Misskey Integration (The "Dynamic" Layer)

  • Real-time Streaming: Connects to the Misskey WebSocket (streaming) to deliver notes, notifications, and messaging instantly.
  • Rich Interaction: Supports posting notes, reactions (Emoji), and basic MFM (Misskey Flavored Markdown) rendering.
  • Misskey Drive: A dedicated visual interface for managing cloud files and images.
  • AiScript & API: Support for running basic AiScript interactions and an embedded API Console.

๐Ÿ’ฌ Flarum Integration (The "Static" Layer)

  • Structured Discussions: Browse tags, discussions, and posts with a clean reading experience.
  • Community interaction: Create discussions, reply to posts, and manage your forum identity.
  • Authentication: Seamless JSON:API based login and token management.

๐Ÿ›ก๏ธ Admin & Power Tools (Admin Only)

  • Unified Dashboard: Detects admin privileges to reveal hidden control panels.
  • Misskey Control Panel: View instance health, stats, and moderate users.
  • Flarum Management: Basic moderation tools and backend management.
  • API Console: A built-in developer tool to test endpoints and inspect JSON responses directly within the app.

๐Ÿ›  Tech Stack

  • Framework: Flutter (Dart)
  • Core Logic & Networking: Rust (High-performance backend logic)
    • reqwest (REST API calls in Rust).
    • serde (Compile-time JSON serialization).
    • flutter_rust_bridge (Seamless Dart-Rust FFI).
  • State Management: Riverpod (Handling multi-account states).
  • Networking (Legacy/UI):
    • dio (Being ported to Rust).
    • web_socket_channel (Misskey Streaming).
  • UI Components: flutter_adaptive_scaffold (or custom LayoutBuilder implementation), flutter_markdown.
  • Storage: flutter_secure_storage for credentials, shared_preferences for settings.

๐Ÿฆ€ Rust Core Development

CyaniTalk uses Rust for its network and business logic layer to ensure maximum performance and type safety.

Building Rust Components

  1. Install Rust: rustup.rs
  2. Install Codegen Tool:
    cargo install flutter_rust_bridge_codegen
  3. Generate Bindings: Whenever you modify Rust code in rust/src/api/, run:
    cd rust
    cargo build
    cd ..
    flutter_rust_bridge_codegen generate

๐Ÿ—บ๏ธ Development Roadmap

Phase 1: The Responsive Foundation ๐Ÿšง

  • Initialize Flutter project.
  • Implement the Responsive Shell (Bottom Nav vs. Nav Rail).
  • Create skeleton pages for the 5 main tabs.

Phase 2: Authentication & Core Connectivity

  • Implement MiAuth flow for Misskey.
  • Implement Token retrieval for Flarum.
  • Create the Unified Login Manager.

Phase 3: The Real-time Engine

  • Establish WebSocket connections for Misskey.
  • Implement global event distribution (Notifications/New Notes).
  • Build the "Messages" tab aggregation.

Phase 4: Content & Creation

  • Misskey: Timeline rendering and Posting interface.
  • Flarum: Discussion list and Thread view.
  • Drive: File grid view and upload functionality.

Phase 5: Admin Tools & Polish

  • Build the API Console.
  • Implement Admin-only route protection.
  • Desktop-specific optimizations (keyboard shortcuts, window management).

๐Ÿš€ Getting Started

Prerequisites: Flutter SDK installed.

  1. Clone the repository:

    git clone https://github.com/CyaniAgent/CyaniTalk.git
    cd CyaniTalk
  2. Install dependencies:

    flutter pub get
  3. Run the app:

    # For Mobile๏ผˆYou need Android Platform Tools, and use 'adb devices' to list your mobile's device code.๏ผ‰
    flutter run -d {your-android-device-code}
    
    # For Desktop (macOS/Windows/Linux)
    flutter run -d windows # or macos/linux

๐Ÿค Contributing

This project is currently in the Greenfield stage. Contributions, especially regarding MFM parsing and Flarum JSON:API handling, are welcome!

๐Ÿ“„ License

MIT License

About

A comprehensive, multi-functional social application built with Flutter, connecting Misskey and Flarum, and belonging to CyaniAgent.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •