sabiwara

sabiwara

Elixir Core Team

Aja - Data structure and utility library for Elixir

Hi!

Introducing Aja, a library aiming to extend the standard library with some extra data structures and utility functions.

Featuring:

  • ordered maps
  • tree-based maps and sets that should be more ergonomic than :gb_trees/:gb_sets
  • exclusive ranges
  • various utility functions

Github: GitHub - sabiwara/aja: Extension of the Elixir standard library focused on data stuctures, data manipulation and performance · GitHub
Hex: Aja v0.7.4 — Documentation

I’m still relatively new to elixir and announcing my first library feels pretty embarrassing, but watching Chris Keathley’s inspiring talk encouraged me to just go and ship my “bonks idea”. Looking forward for your feedback!

Most Liked

sabiwara

sabiwara

Elixir Core Team

What would Elixir feel like if lists let you append or access any element efficiently, like you would do in python or any imperative language?

Clojure, which is also a functional language, makes its persistent vector one of its selling points, precisely because vectors can perform many operations in effective constant time.

This has been a tough challenge and I went through several failed attempts, but I’m happy to announce that A.Vector is now available in Aja, since version 0.4!

While there is still work to be done especially regarding optimization, the performance of this early version already shows great promise: most “enumerable” functions are much faster than erlang’s :array, and some are even slightly faster than their List / Enum’s counterparts.

My motivation and hope is that vectors could make it more straigthtforward to write some of the more algorithm-heavy parts of business logic code. And maybe it can make the transition easier for beginners coming over from imperative languages and who struggle with some of the limitations of linked lists. I’m looking forward to hearing your thoughts!

Where Next?

Popular in Announcing Top

Hal9000
Here is my first stab at this. README pasted below. https://github.com/Hal9000/elixir_random Comments and critiques are welcome. Thank...
New
zorbash
I created Kitto a framework for dashboards inspired by Dashing. The distributed characteristics of Elixir and the low memory footprint...
New
wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
versilov
Could not wait for the missing Elixir ML libraries to appear, so, I wrote one myself, taking https://github.com/sdwolfz/exlearn as a foun...
New
wfgilman
I’ve cleaned up and open sourced three financial libraries I was using for my company. They are bindings for the APIs of these three comp...
New
nikokozak
Hello all, I’ve been working on Svonix - a library for quickly integrating Svelte components into Phoenix views. It’s a much-needed succ...
New
martinthenth
Hello everybody :wave: Recently, some of my colleagues talked about database ids and uuids and their problems, and I remembered the pain...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40165 209
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New

We're in Beta

About us Mission Statement