Skip to content

plyGOData Manipulation in Go, Simplified

dplyr-inspired data manipulation with full type safety and zero dependencies

plyGO

Quick Start

Install plyGO with a single command:

bash
go get github.com/mansoldof/plyGO

Create your first data pipeline in seconds:

go
package main

import "github.com/mansoldof/plyGO"

type Person struct {
    Name   string
    Age    int
    Salary float64
}

func main() {
    people := []Person{
        {"Alice", 30, 75000},
        {"Bob", 25, 60000},
        {"Charlie", 35, 90000},
    }

    plygo.From(people).
        Where("Age").GreaterThan(30).
        OrderBy("Salary").Desc().
        Show()
}

Why plyGO?

Elegant Data Manipulation

plyGO brings the elegance of R's dplyr to Go, making data manipulation intuitive and enjoyable. Chain operations together to build complex data pipelines with minimal code.

go
// Filter, select, and transform in one pipeline
result := plygo.From(employees).
    Where("Department").Equals("Engineering").
    Select("Name", "Salary").
    OrderBy("Salary").Desc().
    Collect()

Type Safe Operations

Unlike reflection-heavy alternatives, plyGO uses Go generics to provide compile-time type safety while maintaining flexibility.

go
// Type-safe operations with struct inference
filtered := plygo.From(people).
    Where("Age").GreaterThan(25).
    Where("Salary").LessThan(80000).
    Collect()

Built for Go Developers

Designed with Go's philosophy in mind: simple, efficient, and reliable. No magic, no surprises, just clean code that works.

Platform Support

  • Pure Go - Works on all platforms Go supports
  • Go 1.18+ required (for generics support)
  • Zero external dependencies

What's Next?

License

MIT License

Released under the MIT License.