wyhaines
Kirk Haines
20 repositories
Veteran, Wyoming @newrelic
Polyglot, Passionate Ruby Guy (since 2001; former Ruby 1.8.6 maintainer). Distributed systems, internals, full stack, C.

splay_tree_map.cr

This is a Crystal implementation of a Splay Tree; which is a type of binary search tree that is semi-balanced and that tends to self-optimize so that the most accessed items are the fastest to retrieve.

  • 6
  • 1
  • 0
  • 4 days ago

Send.cr

This shard implements a usable dynamic dispatch function for Crystal code, modeled on the Ruby #send function of the same name.

  • 3
  • 0
  • 3
  • 5 days ago

git-index.cr

This tool makes a local database of git repositories, indexed by initial commit hashes.

  • 3
  • 0
  • 0
  • about 1 month ago

NewRelic.cr

This is a binding to the New Relic C SDK, so that Crystal programs can add observability features with New Relic.

  • 1
  • 0
  • 0
  • 2 months ago

hash_serializable.cr

The module provides a Hash::Serializeable module which, like JSON::Serializeable and YAML::Serializeable, can be mixed into a class to allow the class's ivars to be serialized out to a hash, and to allow a hash to be instantiated as an instance of a class.

  • 1
  • 0
  • 0
  • 13 days ago

lockfile.cr

This shard implements a portable lockfile, for use with the Crystal Language.

  • 1
  • 0
  • 0
  • 9 months ago

timeout.cr

This implements a very simple timeout method for Crystal. Use it to wrap code in a timeout, so that execution of that code can not continue forever.

  • 1
  • 0
  • 0
  • 17 days ago

simple_irc.cr

This is a simple IRC protocol implementation. No bundled bot capabilities or anything fancy. Just the basics, made easy to use.

  • 1
  • 0
  • 0
  • about 1 month ago
  • 1
  • 0
  • 0
  • about 1 month ago

csuuid.cr

This is a small UUID library that implements a chronologically sortable UUID.

  • 1
  • 0
  • 0
  • about 1 month ago

evita

A spike to play with some ideas surrounding a chat bot implementation.

  • 1
  • 0
  • 0
  • 12 days ago

ParseDate.cr

This is a small library that attempts to parse a wide variety of date formats with a single call.

  • 1
  • 0
  • 0
  • 2 months ago

minion-agent-client.cr

This is the Crystal implementation of the Minion Agent Client.

  • 0
  • 0
  • 0
  • 12 months ago

TwitchEventSub.cr

This shard encapsulates logic and handling for interacting with the Twitch EventSub API.

  • 0
  • 0
  • 0
  • about 1 month ago

analogger-client.cr

This is the Crystal version of the client library for Analogger.

  • 0
  • 0
  • 0
  • about 1 year ago

liquidcrystal

This is a port of the Liquid gem from Shopify, for the Crystal language. It aims to be as compatible as possible with the upstream source of truth that is the Shopify Ruby implementation of Liquid.

  • 0
  • 0
  • 0
  • 4 months ago

serf-handler.cr

This implements a port of the Ruby Serf Handler gem -- https://github.com/wyhaines/serf-handler -- as a library that can be used to easily build compiled, distributable handler binaries using the Crystal language.

  • 0
  • 0
  • 0
  • 2 months ago

bus.cr

It is sometimes useful to have a pubsub type message bus inside your software. This library implements a bus to send messages to interested subscribers. Those subscribers can reply to those messages, and are guaranteed that the reply will be routed back to the sender.

  • 0
  • 0
  • 0
  • 23 days ago

defined.cr

This is a very small shard that just provides a macro that can be used to see if a given type/constant is defined. The main use case would be for a library that might choose to do different things depending on whether another, optional library has been required or not.

  • 0
  • 0
  • 0
  • 1 day ago

analogger.cr

This is a port of https://github.com/wyhaines/analogger using Crystal.

  • 0
  • 0
  • 0
  • about 1 year ago