Miles to go ...

Active and archived work

Goto github account

All of my contributions are hosted in github, most of them are open-sourced under permissive license like MIT or BSD. I have tried to classify my activities and contributions as active and archive. Note that archived project are not incomplete, most likely they have reached a certain state of usability with fair amout of testing. Just that am not actively exploring future ideas with archived projects.

Active projects (in rust)

Am most active with the following projects, contributions are very much welcome :)

json, json toolkit tuned for big-data, document database.

xorfilter, faster and smaller than bloom and cuckoo filters, for immutable set of keys.

read-only-btree, key-value index using immutable, read only btree.

wral, write ahead logging for rust applications.

ppar, persistent array using a variant of rope data structure.

ppom, persistent ordered map using left-leaning-red-black-tree.

cmap, concurrent unordered key-value map, support multi-writer concurrency.

mkit, collection of types and functions used by other libraries and applications.

ixperf, performance toolkit for indexing algorithms.

diskio, performance toolkit for storage devices.

ted, vim inspired text editor, backed by rope data structure for buffer management and tree-sitter for syntax highlighting. There is a long term plan to make this into a terminal tool kit for app-development using buffers, syntax highlighting and events.

drand client in rust, distributed randomness beacon client for drand.love.

multiformats, peer-id, cid, implement multiformats.io in rust-lang. This specification is part of the ipfs-project which also define peer-id and cid specifications.

Golang

List of projects in golang. They are fairly tested and in usable state, though these days I focus mostly on rust-lang.

Goparsec, parser combinator library with standard set of combinators, reg-ex based scanner and commonly used Terminal parsers..

Gofast, high performance protocol in golang. For simple needs like peer-to-peer, pipelining this is a good choice. For more complex requirement I might suggest quic.

Gson, collection of JSON serialization, CBOR serialization and collation encoding for both JSON and CBOR.

Monster, production system in Go. Reverse of parsing, given a BNF grammar generates text. Very useful in randomized generation of json values. SQL queries, html urls and pretty much any thing that defines a shape in text.

Golog, logging library in golang, for golang.

Gosettings, settings and configuration for golang libraries and applications.

Double entry accounting

I like double-entry systems. Me being more familiar and comfortable with terminal, I naturally found ledger-cli very attractive.

Goledger, double entry accounting for currencies and commodities - Credit the giver, Debit the receiver. When time permits I am planning to port this to Rust, if interested reach please reach out. If you are into scala or prefer JVM try abandon.

Tally2ledger, tally is a popular accounting tool in India Tallyledger tries to convert books from tally format to ledger format. Note that, AFAIK, Tally does not publish its formats officially, so it is my amateur attempt to reverse engineer the format.

Sometimes, I wonder whether tech-world can come up with just a single idea to handle data and information, like what double-entry did to accounting.

Python

A while back we tried to build an open collaboration tool for programmers, discover-zeta, as an alternative for trac, source-forge and google-code, soon github came and proved its success. Before halting the project I decided to fork out the developement stack as independant libraries.

Pluggdapps, a component system in python much simpler than Zope. Pluggdapps documentation hosted in python cheese shop.

Tayra, create concise, beautiful and highly re-usable HTML templates. Tayra documentation hosted in python cheese shop.

Tayrakit, widget toolkit using tayra.

Eazytext, wiki markup language, similar to Markdown, but provide more options to user at the expense of looking little cluttered.

Pagd, static site generator. Pagd documentation hosted in python cheese shop.

All of them are in archive state. May be when internet matures into a truly distributed network we may spawn a new avatar of discover-zeta based on merkel-trees :) Meanwhile if you plan to fork the project and continue with the development kindly let me know.

Erlang

Erlang is a nice language, whether used in production or not, I would recommend programmers to take a peep at it for its concurrency, and the ideas suggested in open-telecom-platform. If you like the idioms and ideas of Erlang, but feel un-comfortable with its syntax check out Elixir. I have listed some of the projects I enjoyed implementing in Erlang and they are currently in archive state.

Sudoku, sudoku puzzle generator and solver in erlang.

Netscale, collection of distributed apps in erlang.

Textmode, erlang + ncurses, terminal server for erlang applications.