pinka

Crates.iopinka
lib.rspinka
version0.1.0-beta.1
created_at2025-01-17 00:05:31.434464+00
updated_at2025-02-23 07:12:45.400791+00
descriptionA highly available, ActivityPub-powered commenting system that bridges the gap between web comments and the Fediverse. Perfect for blogs looking to engage with Mastodon and other ActivityPub-compatible platforms.
homepage
repositoryhttps://github.com/pinka-social/pinka
max_upload_size
id1520127
size587,827
Kan-Ru Chen (kanru)

documentation

README

Pinka 🦋

License: MIT OR Apache-2.0 crates.io

A highly available, ActivityPub-powered commenting system that bridges the gap between web comments and the Fediverse. Perfect for blogs looking to engage with Mastodon and other ActivityPub-compatible platforms.

The name "Pinka" comes from the Lojban word meaning "to comment" (x₁ is a comment/remark about subject x₂ expressed by x₃ to audience x₄). This reflects both the project's core purpose and its systematic approach to federated communications.

[!WARNING] Pinka is still under active development. The database schema might change between minor versions. See FEATURES.md for currently implemented features.

[!NOTE] Federating with Mastodon mostly works now!

✨ Features

  • 🔄 Full ActivityPub Integration

    • Actor profile, inbox, and outbox support
    • Seamless federation with Mastodon and other Fediverse platforms
  • 🎯 Easy Integration

    • RESTful API for comment management
    • Drop-in web components for instant commenting functionality
  • 🎨 Highly Customizable

    • Flexible Tera templating system
    • Fully customizable via CSS
  • 🔒 Built for Reliability

    • Raft-based clustering powered by Ractor actor system
    • Self-healing data replication
    • Robust comment moderation system
  • 📦 Zero External Dependencies

    • Powered by Fjall, an embedded key/value database
    • No external database setup or management required
    • Self-contained and easy to deploy

💡 Why Pinka?

Pinka is designed to be simple to deploy and easy to maintain. With its embedded Fjall database and Ractor-based clustering, you don't need to worry about:

  • Setting up external databases
  • Complex deployment procedures
  • Additional infrastructure costs
  • Cluster coordination complexity

Just deploy and run!

🚀 Quick Start

cargo install --locked pinka
pinka run -c examples/config-single.toml

📖 Documentation

For detailed documentation, please visit our website (🚧).

🛠️ Integration Example

<pinka-comments
  site="your-site-url"
  page-id="unique-page-id">
</pinka-comments>

🤝 Contributing

We welcome contributions! By contributing, you agree to license your work under MIT OR Apache-2.0 license.

Please read our CONTRIBUTING.md for:

  • Development setup
  • Coding guidelines
  • DCO requirements
  • Pull request process
  • Community guidelines

📜 License

This project is licensed under either of:

at your option.

🌟 Acknowledgments

Pinka stands on the shoulders of giants. Special thanks to:

  • Fjall - The robust embedded key/value database that powers our storage layer
  • Ractor - The excellent actor system that enables our reliable clustering capabilities

Thanks to all contributors who help make Pinka better!

Commit count: 268

cargo fmt