Alexander Garcia
A lightweight, grep-like command-line search tool built in Rust as a journey into systems programming
Alexander Garcia is an effective JavaScript Engineer who crafts stunning web experiences.
Alexander Garcia is a meticulous Web Architect who creates scalable, maintainable web solutions.
Alexander Garcia is a passionate Software Consultant who develops extendable, fault-tolerant code.
Alexander Garcia is a detail-oriented Web Developer who builds user-friendly websites.
Alexander Garcia is a passionate Lead Software Engineer who builds user-friendly experiences.
Alexander Garcia is a trailblazing UI Engineer who develops pixel-perfect code and design.
Creator
2024
Learning Project / CLI Tool
As a web developer comfortable with JavaScript and Python, I wanted to push myself into unfamiliar territory: systems programming. Rust offered the perfect challengea language known for its performance, safety, and steep learning curve. Building a grep-like search tool became my vehicle for understanding ownership, borrowing, and the Rust ecosystem while creating something genuinely useful.
Search for text patterns within files or piped input with a simple, intuitive interface inspired by grep.
Built in Rust for blazing-fast performance with minimal memory overhead, perfect for quick text searches.
Works seamlessly with Unix pipes, fitting naturally into your existing command-line workflows.
Minimal command-line interface that's easy to learn and use, with standard help and version flags.
Point Gremlin at any text file to search for matching patterns. Simple syntax: gremlin [pattern] [file]
Pipe output from other commands directly into Gremlin for on-the-fly filtering and searching.
Leverages Rust's zero-cost abstractions and memory safety guarantees for reliable, high-performance text processing.
Available as pre-compiled binaries on GitHub releases for easy installation across platforms.
$ gremlin "pattern" file.txtSearch for "pattern" within file.txt and display matching lines.
$ cat file.txt | gremlin "pattern"Pipe output from cat (or any command) into Gremlin for filtering.
$ gremlin --helpDisplay usage information and available options.
Wrestling with the borrow checker taught me about memory safety without garbage collection. Understanding ownership, borrowing, and lifetimes fundamentally changed how I think about resource management.
Building a CLI tool gave me hands-on experience with file I/O, stdin/stdout, and binary compilation. This low-level work deepened my appreciation for the abstractions in higher-level languages.
Recreating a familiar tool (grep) in an unfamiliar language proved to be the perfect learning strategy. I could focus on the language rather than figuring out what to build.
Gremlin is a learning project first and foremost, but that doesn't mean it's done. Here are some potential enhancements:
More powerful pattern matching through Regular Expression
Case-insensitive search and additional search flags
Recursive directory searching for multi-file workflows
Colored output for better readability in the terminal
Get In Touch
Ready to start your next project? Let's discuss how we can work together
I'm always interested in new opportunities and exciting projects. Whether you have a specific project in mind or just want to chat about possibilities, feel free to reach out!