Popularity
6.1
Growing
Activity
0.0
Stable
27
3
6
Programming language: Crystal
License: MIT License
Tags:
Algorithms And Data Structures
Latest version: v0.31.1
bitfields alternatives and similar shards
Based on the "Algorithms and Data structures" category.
Alternatively, view bitfields alternatives based on common mentions on social networks and blogs.
-
graphlb
graphlb is a crystal library which contains all the graph Data-Structures and Algorithms implemented in crystal-lang. -
text
A collection of phonetic algorithms for Crystal. Including; Porter-Stemmer, Soundex, Metaphone, Double Metaphone & White Similarity -
splay_tree_map
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. -
haversine
Crystal implementation of the Haversine formula to calculate distances between two points given their latitudes and longitudes -
SPAKE2+
a crystal lang implementation of SPAKE2+, a Password Authenticated Key Exchange (PAKE) protocol
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
Promo
www.saashub.com
Do you think we are missing an alternative of bitfields or a related project?
README
Bit Fields for Crystal-Lang
Pure Crystal implementation of Bit Fields. Handles encoding/decoding of bytes.
Installation
- Add the dependency to your
shard.yml
:yaml dependencies: bitfields: github: elorest/bitfields
- Run
shards install
Usage
require "bitfields"
class CrossBit < BitFields
bf rpms : UInt32, 32
bf temp : UInt8, 4
bf psi : UInt16, 9
bf power : UInt8, 1
bf lights : UInt8, 2
end
crossbit = CrossBit.new(Bytes[109, 121, 110, 97, 109, 245])
crossbit.temp #=> 13_u8
crossbit.psi #=> 342_u16
crossbit.power #=> 1_u8
crossbit.lights #=> 3_u8
crossbit.to_slice #=> Bytes[109, 121, 110, 97, 109, 245]
crossbit.to_s #=> |lights|power|psi|temp|rpms|
#=> |11|1|101010110|1101|01100001011011100111100101101101|
crossbit.power = 0 #=> 0_u8
crossbit.to_slice #=> Bytes[109, 121, 110, 97, 109, 213]
Contributing
- Fork it (https://github.com/elorest/bitfields/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Isaac Sloan - creator and maintainer