Skip to content

dimkauzh/nando

Repository files navigation

🚀 Nando

A unified Go API wrapper that enables cross-platform deployment with a single codebase. Write once, deploy everywhere.

Warning

This project is under heavy maintenance and active development. Breaking changes may occur frequently as we work to improve and stabilize the API.

🎯 Overview

Nando simplifies multi-platform development by providing a unified API layer that wraps popular platforms like Discord, Slack, and others. Instead of writing separate implementations for each platform, write your code once using Nando's abstraction layer.

✨ Features

  • Single API interface for multiple platforms
  • Currently supports multiple platforms
  • Type-safe implementations
  • Easy to extend for new platforms
  • Consistent error handling
  • Platform-agnostic message handling

📦 Installation

go get -u codeberg.org/dimkauzh/nando

Note

Nando requires Go 1.18 or higher.

🔨 Usage

package main

import (
	nando "codeberg.org/dimkauzh/nando/api"
)

func main() {
	tk, err := nando.LoadFromEnv("token")
	if err != nil {
		panic(err)
	}

	// Optional, empty string for global commands
	gd, err := nando.LoadFromEnv("guildid")
	if err != nil {
		panic(err)
	}

	client, err := nando.NewNandoClient(nando.Config{
		Discord: nando.Platform{
			Enabled: true,
			Token:   tk,
			// Empty string for global commands
			GuildID: gd,
			Prefix:  "!",
		},
	})

	client.Connect()

	// Optional, added this for fun
	client.BotRunningMessage = "yay :)"
	client.BotConnectingMessage = "cmon :|"
	client.BotClosingMessage = "awww :("

	client.HandleQuit()
}

🛠️ Supported Platforms

Platform Status Package
Discord discordgo
Matrix 📅 Coming Soon
Slack 📅 Coming Soon
IRC 📅 Coming Soon
Telegram 📝 Coming Soon
Revolt 📝 Coming Soon
RCS 📝 Coming Soon

Note

Platforms might be added or removed in the future. Some platforms may have certain limitations or restrictions.

Status Legend

  • 🚧 In Development
  • 📅 Planned
  • 📝 Possibly coming
  • ✅ Finished

📚 Documentation

Detailed documentation and examples are currently in progress. Please refer to the examples directory for usage examples.

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Tip

Use air to hot-reload the test.go file while developing.

🐛 Known Issues

See the Issues page for current bugs and feature requests.

📋 Roadmap

The roadmap is available in the ROADMAP.md file.

📄 License

This project is licensed under the Vuelto License V1 - see the LICENSE file for details.

⭐ Support

If you find this project helpful, please consider giving it a star on GitHub!

📬 Contact

  • Create an issue for bug reports or feature requests
  • Reach out on Discord: here

Made with ❤️ by Vuelto Team

About

[mirror] A WIP custom Golang API to build Multiplatform bots!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •