masa-sdk-go

module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2024 License: MIT

README ΒΆ

Masa Logo

Official Go SDK for the Masa Protocol

A powerful Go library for interacting with the Masa universe

Go Report Card GoDoc

Features

  • πŸ”„ Asynchronous Request Queue - Built-in priority queue system for handling concurrent API requests
  • πŸ” X (Twitter) Integration - Comprehensive search and profile data retrieval
  • ⚑ Rate Limiting - Intelligent rate limiting and retry mechanisms
  • πŸ›‘οΈ Error Handling - Robust error handling with custom error types
  • πŸ“Š Response Management - Channel-based response handling for async operations

Installation

go get github.com/masa-finance/masa-sdk-go

Quick Start

Initialize Queue

queue := x.NewRequestQueue(5) // 5 concurrent workers
queue.Start()
defer queue.Stop()

Search X (Twitter)

responseChan := queue.AddRequest(x.SearchRequest, map[string]interface{}{
    "query": "web3",
    "count": 10,
    "additionalProps": map[string]interface{}{
        "fromDate": "2024-01-01",
        "toDate":   "2024-03-20",
    },
}, x.DefaultPriority)

response := <-responseChan

Get X Profile

responseChan := queue.AddRequest(x.ProfileRequest, map[string]interface{}{
    "username": "elonmusk",
}, x.DefaultPriority)

response := <-responseChan

Queue Configuration

Parameter Default Description
MaxConcurrentRequests 5 Maximum number of concurrent workers
APIRequestsPerSecond 20 Rate limit for API requests
DefaultRetries 10 Number of retry attempts
DefaultPriority 100 Default priority for requests

Error Handling

The SDK provides custom error types for different scenarios:

  • RateLimitError
  • WorkerRateLimitError
  • TimeoutError
  • ConnectionError
  • EmptyResponseError

Testing

ginkgo tests/integration/x/... -v

Contributing

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

License

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

Support

Directories ΒΆ

Path Synopsis
pkg
db
x
Package masatwitter provides functionality for interacting with the Masa Protocol Twitter API
Package masatwitter provides functionality for interacting with the Masa Protocol Twitter API
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL