5-day current streakΒ·32-day longest streak
π How to support my Open Source work Become my Sponsor Where to find me π My blog with articles and videos 𦣠Mastodon π¦ Bluesky π GitHub About Iβ¦
π How to support my Open Source work
Where to find me
- π My blog with articles and videos
- 𦣠Mastodon
- π¦ Bluesky
- π GitHub
About
I started contributing to Open Source projects in 2008 and over time I created, contributed to and helped with over 100 libraries and frameworks. This page lists the most notable of my contributions.
Elixir Drops π¦
My latest project that brings some of the dry-rb goodies to the Elixir ecosystem.
https://solnic.dev/introducing-elixir-drops
Hanami
Hanami is a Ruby application framework with a modern component-based architecture. I've been part of the core team since 2018, working on its 2.0 release which uses various dry-rb libraries as its foundation as well as rom-rb as the default "model layer".
dry-rb
The organization was created by Andy Holland in 2015. I was thinking about doing a similar thing so I decided to contribute and started working on a couple of gems under this organization. The projects aim to be a modern take on solving common problems. Libraries are small and simple to understand with a greatΒ focus on reusability.
My main contributions include:
- dry-validation - validation library with type-safe schemas and rules
- dry-schema - schema DSL that was originally provided by dry-validation
- dry-typesΒ - a flexible "type system" for Ruby projects. Currently it's the foundation for other libraries, like rom-rb, dry-validation, hanami or reform
- dry-structΒ - a virtus-like attributes API for POROs
- dry-logicΒ - composable rule objects
- dry-system - a modern way of organizing Ruby applications using dependency injection as the architectural foundation
- dry-auto\_injectΒ - container-agnostic auto-injection abstraction
- dry-eventsΒ - a simple pub/sub solution
- dry-monitorΒ - a set of abstractions that help with application monitoring
rom-rb
The work on Ruby Object Mapper (rom-rb) initially started as an attempt to build the second major version of the DataMapper project; however, in 2014 I decided to take the project in a different direction and turn it into an FP/OO hybrid toolkit that simplifies working with the data using Ruby language. It consists of a small(ish) core and plenty of adapters and extensions.
My contributions include:
- rom-core - design and implementation of the core APIs, such as
ROM::Gateway,ΒROM::Relation,ΒROM::CommandorROM::Mapper - rom-repository - design and implementation of the repository component
- rom-changeset - design and implementation of the changeset component
- rom-sqlΒ - the official SQL adapter
- rom-elasticsearchΒ - the official Elasticsearch adapter
- rom-factoryΒ - the official data generator and "factory" toolkit
Transproc
TransprocΒ is a Ruby gem which provides an API for functional composition of arbitrary Proc-like objects. It introduced the left-to-right >>Β function composition operator, which is now considered as a potential addition to Ruby's core.
The gemΒ comes with a ton of built-in data transformation functions, which initially was its main purpose. It is used as the data transformation foundation in rom-rb.
Past projects
These are the projects that I used to work in the past that are now discontinued.
DataMapper
DataMapper was a Ruby ORM that was part of the default stack of the Merb framework. I started helping with the project in late 2008 and eventually joined the core team in 2010. I mostly focused on working on the Property API (which later on was extracted into a separate library called Virtus), on-going maintenance, bug fixing, user support and handling releases.
Virtus
Virtus is a project that started as an extraction of the DataMapper Property API back in 2011. Eventually it has become very popular and made typed struct-like objects in Ruby a thing and inspired people to build their own solutions too. There were also many other gems that started using Virtus under the hood for coercions, like Representable or Grape.
The project has been discontinued in 2019 because I shifted my focus on dry-rb which provides much better solutions to the same kind of problems that virtus tried to solve.
Coercible
Coercible is the coercion backend extracted from Virtus which provides a set of generic coercions for most common data types like numbers, dates etc.
-
drops β PINNED
π οΈ Tools for working with data effectively - data contracts using types, schemas, domain validation rules, type-safe casting, and more.
Elixir β 300 7mo agoExplain β -
drops_relation β PINNED
π-included relation abstraction on top of Ecto with schema inference and composable query API + more β¨
Elixir β 47 11mo agoExplain β -
drops_operation β PINNED
Composable operations with type-safe params validation and exception-free control flows
Elixir β 4 11mo agoExplain β -
drops_inflector β PINNED
Inflection utils for Elixir
Elixir β 16 11mo agoExplain β -
virtus
[DISCONTINUED ] Attributes on Steroids for Plain Old Ruby Objects
Ruby β 3.7k 4y agoExplain β -
transproc β£
The project was ported to dry-rb/dry-transformer
Ruby β 408 6y agoExplain β -
rom-relation β£
This is an old ROM prototype that's no longer developed.
Ruby β 361 12y agoExplain β -
coercible
Powerful, flexible and configurable coercion library. And nothing more.
Ruby β 137 8y agoExplain β -
transflow
[DISCONTINUED] Business transaction flow DSL
Ruby β 101 10y agoExplain β -
dm-mongo-adapter β β£
MongoDB DataMapper Adapter
Ruby β 72 14y agoExplain β -
charlatan
Neat delegation for ruby objects
Ruby β 69 11y agoExplain β -
text_parser
TextParser is an Elixir library for extracting and validating structured tokens from text, such as URLs, hashtags, @-mentions etc.
Elixir β 49 1y agoExplain β -
rom-rails-skeleton
My Rails app skeleton with ROM and other goodies
Ruby β 35 10y agoExplain β -
rom-session
DEPRECATED / DEAD / MOVE ON
Ruby β 33 12y agoExplain β -
hanami-bookshelf-rom
Hanami 1.x bookshelf app based on tutorial, tweaked to use rom-rb 4.x standalone
Ruby β 18 7y agoExplain β -
dm-validations-ext
Various additions to the dm-validations API
Ruby β 11 15y agoExplain β -
rom-rails-demo
Experimental rails app demo using ROM
Ruby β 10 12y agoExplain β -
ossy
Maintenance automation helper as a CLI tool used by dry-rb and rom-rb
Ruby β 9 3y agoExplain β -
lotuskase
Custom web stack based on dry-component and lotus
Ruby β 8 10y agoExplain β -
hanami-dockerized-demo
A sample Hanami app with a docker-compose-driven-development-and-CI aka one docker-compose to rule them all.
Ruby β 7 5y agoExplain β -
architecture-talk-example-app
No description.
Ruby β 7 8y agoExplain β -
virtus-dirty_tracking
ABANDONED - MOVE ON
Ruby β 6 14y agoExplain β -
rom-workshop
No description.
Ruby β 5 7y agoExplain β -
axiom β
This is an experimental fork of Axiom
Ruby β 5 1y agoExplain β -
dm-timezones
Timezones support for DataMapper
β 5 16y agoExplain β -
rodakase β£
The project that gave birth to dry-(system|view|web)
Ruby β 3 7y agoExplain β -
middleman-docsite
Various middleman extensions extracted from rom-rb and dry-rb websites
Ruby β 3 3y agoExplain β -
docker-nginx-proxy-example
No description.
JavaScript β 2 7y agoExplain β -
dm-is-configurable
A DataMapper plugin which adds configuration to resources
Ruby β 2 16y agoExplain β -
stop_active_support_anywhere β
Stop use Active Support in not rails related projects
Ruby β 1 1y agoExplain β -
ruby-devel-containers
WIP
Ruby β 1 5y agoExplain β -
virtus-units
ABANDONED - MOVE ON
Ruby β 1 15y agoExplain β -
rom_factory β
No description.
Ruby β 1 9y agoExplain β -
sql β
SQL Parser and Generator
Ruby β 1 12y agoExplain β -
dm-gdata-adapters
A set of DataMapper adapters for Google Data API
Ruby β 1 17y agoExplain β -
obsidian-task-sync
No description.
TypeScript β 0 3mo agoExplain β -
sentry-ruby β
Sentry SDK for Ruby
β 0 9mo agoExplain β -
igniter β
A code generation and project patching framework.
β 0 11mo agoExplain β -
phx-testing
No description.
Elixir β 0 1y agoExplain β -
solnic
solnic.codes website + my GitHub README.md in one repo
β 0 1y agoExplain β -
opentelemetry-erlang-contrib β
OpenTelemetry instrumentation for Erlang & Elixir
β 0 1y agoExplain β -
sentry-testing-rails
No description.
Ruby β 0 1y agoExplain β -
opentelemetry-bandit β
No description.
Elixir β 0 1y agoExplain β -
dotfiles-example
No description.
Shell β 0 1y agoExplain β -
hanami-docker_demo
No description.
Ruby β 0 3y agoExplain β -
literal_enums-rails β
Literal Enums for Rails
β 0 3y agoExplain β -
hanami-bookshelf β
Hanami 2 Bookshelf
Ruby β 0 3y agoExplain β -
obsidian-link-embed β
This plugin allow you to convert URLs in your notes into embeded previews.
β 0 3y agoExplain β -
elixir-lang.github.com β
Website for Elixir
β 0 4y agoExplain β -
exercism-elixir β
Exercism exercises in Elixir.
β 0 1y agoExplain β -
zeitwerk β
Efficient and thread-safe code loader for Ruby
β 0 5y agoExplain β -
testing β
Test repository. Nothing to see here, move along.
Ruby β 0 5y agoExplain β -
docs β
The open-source repo for docs.github.com
β 0 5y agoExplain β -
pronto-rubocop-action
WIP
Shell β 0 5y agoExplain β -
homebridge β
HomeKit support for the impatient
JavaScript β 0 7y agoExplain β -
devtools β
Shared tools, configuration and maintenance automation for dry-rb repos
β 0 6y agoExplain β -
hanami β
The web, with simplicity.
β 0 1y agoExplain β -
karafka β
Framework for Apache Kafka based Ruby and Rails applications development.
β 0 1y agoExplain β -
exploding-rails-v2-examples β
No description.
Ruby β 0 1y agoExplain β -
alpinist
Estimate and invoice handling for client service agencies. Example Rodakase app.
Ruby β 0 10y agoExplain β -
dry-rb.org β
The official website of dry-rb
CSS β 0 7y agoExplain β -
waterdrop β
WaterDrop is a standalone Karafka component library for generating Kafka messages
Ruby β 0 7y agoExplain β -
phoenix-showdown β
:horse_racing: benchmark Sinatra-like web frameworks
Elixir β 0 9y agoExplain β -
csa-a-2018 β
No description.
HTML β 0 1y agoExplain β -
hanami-model β
A persistence framework with entities and repositories
Ruby β 0 1y agoExplain β -
surveyor-rom β
No description.
Ruby β 0 8y agoExplain β -
sequel β
Sequel: The Database Toolkit for Ruby
Ruby β 0 1y agoExplain β -
trailblazer β
A high-level architecture for the web.
Ruby β 0 1y agoExplain β -
ecto β
A database wrapper and language integrated query for Elixir
Elixir β 0 10y agoExplain β -
call_sheet β
Business transaction DSL
Ruby β 0 1y agoExplain β
No repos match these filters.
More creators on gitmyhub
standardgalactic AlexTheAnalyst MorvanZhou cloudwu kenjinote