Popularity
5.0
Declining
Activity
0.0
Stable
23
1
4
Programming language: Crystal
License: MIT License
Tags:
Networking
bson.cr alternatives and similar shards
Based on the "Networking" category.
Alternatively, view bson.cr alternatives based on common mentions on social networks and blogs.
-
transfer_more
Fast and temporary file uploader :signal_strength: UPSTREAM ON https://git.sceptique.eu/Sceptique/transfer_more
Kargo - Stop Scripting Promotions. Start Shipping with Kargo
Kargo automates promotion across dev, staging, and prod with approval gates and verification. Open source, built by the team behind Argo CD. Download now.
Promo
akuity.io
Do you think we are missing an alternative of bson.cr or a related project?
README
BSON
BSON implemented in Crystal according to the spec.
Installation
Add this line to your application's shard.yml:
dependencies:
bson:
github: jeromegn/bson.cr
Usage
require "bson"
io = File.open(File.expand_path("examples/sample.bson")) # A pretty representative BSON document
BSON.decode(io) # => Returns a Hash instance
bson, writer = IO.pipe
"a string".to_bson(writer) # => encodes the string to BSON and writes to the IO
puts String.from_bson(bson).inspect # => "a string"
doc = Hash{
"name" => "hello",
"int" => 32
}
puts doc # => { "name" => "hello", "int" => 32 }
bson, writer = IO.pipe
doc.to_bson(writer) # => Encodes the whole document to BSON and writes to the IO
puts BSON.decode(bson) # => { "name" => "hello", "int" => 32 }
Supported types
All types specified in the BSON spec.
Relevant basic types of Crystal have been extended to add #to_bson(io : IO) and .from_bson(io : IO) for simplicity.
A BSON::Document is just an alias for Hash(String, BSON::Type)
TODOs
- [ ] More tests
Caveats
- Only supported Regex options are the ones also supported by Crystal:
iandmbasically.
Contributing
- Fork it ( https://github.com/jeromegn/bson.cr/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
- jeromegn Jerome Gravel-Niquet - creator, maintainer