Convert Figma logo to code with AI

tulir logogomuks

A terminal based Matrix client written in Go.

1,328
121
1,328
187

Top Related Projects

Matrix Client-Server SDK for JavaScript

Matrix SDK for React Javascript

A glossy Matrix collaboration client for the web.

Quick Overview

Gomuks is a terminal-based Matrix client written in Go. It provides a command-line interface for interacting with Matrix, an open network for secure, decentralized communication. Gomuks aims to offer a lightweight and efficient alternative to graphical Matrix clients.

Pros

  • Lightweight and resource-efficient, suitable for low-powered devices or servers
  • Terminal-based interface, allowing for quick navigation and keyboard-centric usage
  • Cross-platform compatibility (Linux, macOS, Windows)
  • Supports end-to-end encryption for secure messaging

Cons

  • Limited graphical capabilities compared to GUI-based Matrix clients
  • May have a steeper learning curve for users unfamiliar with terminal interfaces
  • Some advanced Matrix features might not be fully implemented
  • Potential for slower development compared to more popular Matrix clients

Getting Started

To get started with Gomuks, follow these steps:

  1. Install Go on your system if not already installed.
  2. Install Gomuks using Go:
    go install maunium.net/go/gomuks@latest
    
  3. Run Gomuks:
    gomuks
    
  4. On first run, you'll be prompted to log in or register a Matrix account.
  5. Use /help to see available commands and start exploring the interface.

Note: Gomuks stores its configuration and data in ~/.config/gomuks/ on Linux and macOS, or %APPDATA%\gomuks\ on Windows.

Competitor Comparisons

Matrix Client-Server SDK for JavaScript

Pros of matrix-js-sdk

  • Written in JavaScript, making it ideal for web-based Matrix clients and Node.js applications
  • Comprehensive SDK with support for most Matrix API endpoints and features
  • Well-maintained by the official Matrix.org team, ensuring compatibility with the latest Matrix specifications

Cons of matrix-js-sdk

  • Larger footprint and potentially higher resource usage compared to a Go-based client
  • May require additional setup and dependencies for use in non-JavaScript environments

Code Comparison

matrix-js-sdk:

const client = matrixcs.createClient({
  baseUrl: "https://matrix.org",
  accessToken: "YOUR_ACCESS_TOKEN",
  userId: "@alice:matrix.org"
});

client.on("Room.timeline", function(event, room, toStartOfTimeline) {
  console.log(event.getContent().body);
});

gomuks:

client, err := mautrix.NewClient("https://matrix.org", "@alice:matrix.org", "YOUR_ACCESS_TOKEN")
if err != nil {
    panic(err)
}

syncer := client.Syncer.(*mautrix.DefaultSyncer)
syncer.OnEventType(event.EventMessage, func(source mautrix.EventSource, evt *event.Event) {
    fmt.Println(evt.Content.AsMessage().Body)
})

Summary

gomuks is a terminal-based Matrix client written in Go, while matrix-js-sdk is a JavaScript SDK for building Matrix clients. gomuks offers a lightweight, terminal-friendly experience, while matrix-js-sdk provides a comprehensive toolkit for web and Node.js applications. The choice between them depends on the target platform and specific project requirements.

Matrix SDK for React Javascript

Pros of matrix-react-sdk

  • Rich, web-based user interface with more advanced features
  • Supports a wider range of Matrix client functionality
  • Better suited for desktop and web applications

Cons of matrix-react-sdk

  • Larger codebase and more complex to maintain
  • Requires a web browser or Electron-like environment to run
  • Potentially higher resource usage due to React framework

Code Comparison

matrix-react-sdk (JavaScript/React):

export default class RoomView extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            room: null,
            // ... other state properties
        };
    }
    // ... component methods
}

gomuks (Go):

type RoomView struct {
    room *rooms.Room
    // ... other struct fields
}

func NewRoomView(room *rooms.Room) *RoomView {
    return &RoomView{
        room: room,
        // ... initialize other fields
    }
}

Summary

matrix-react-sdk is a comprehensive web-based Matrix client SDK, offering a rich user interface and extensive features. It's ideal for web and desktop applications but comes with increased complexity and resource requirements. gomuks, on the other hand, is a lightweight, terminal-based Matrix client written in Go, offering simplicity and lower resource usage at the cost of fewer graphical features.

A glossy Matrix collaboration client for the web.

Pros of Element Web

  • Rich, user-friendly web-based interface with modern design
  • Supports a wide range of features including voice/video calls and file sharing
  • Cross-platform compatibility through web browsers

Cons of Element Web

  • Heavier resource usage compared to terminal-based clients
  • Requires a web browser, which may not be ideal for all environments
  • More complex codebase, potentially harder to contribute to or customize

Code Comparison

Element Web (React):

const MessageComposer = ({ room, onSend }) => {
  const [message, setMessage] = useState('');
  const handleSend = () => {
    onSend(message);
    setMessage('');
  };
  // ... more React component code
};

Gomuks (Go):

func (view *MessageView) InputHandler(event *tcell.EventKey) *tcell.EventKey {
    switch event.Key() {
    case tcell.KeyEnter:
        view.SendMessage()
        return nil
    // ... more input handling logic
    }
}

Summary

Element Web offers a feature-rich, visually appealing interface suitable for most users, while Gomuks provides a lightweight, terminal-based alternative for power users and resource-constrained environments. Element Web's React-based codebase allows for complex UI components, while Gomuks' Go implementation focuses on efficiency and simplicity.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

gomuks

Languages License Release GitLab CI Maintainability Packaging status

Chat Preview

A terminal Matrix client written in Go using mautrix and mauview.

Docs

For installation and usage instructions, see docs.mau.fi.

Discussion

Matrix room: #gomuks:maunium.net