Fork me on GitHub
#announcements
<
2020-01-08
>
wilkerlucio05:01:26

Hello everybody, just release a new library called edn-json (https://github.com/wilkerlucio/edn-json). This library provides a way to encode EDN data to JSON, similar to clj->js, but does it in a way that allows restauration of the EDN types on the conversion back (keywords, symbols, uuids, etc...). The intended application is to be able to store data from EDN in JSON document stores (like MongoDB, IndexedDB...) in a way that keeps them efficient (leveraging the structure) while enable the data to be converted back to it's original form. More details on the README.

wilkerlucio05:01:26

Hello everybody, just release a new library called edn-json (https://github.com/wilkerlucio/edn-json). This library provides a way to encode EDN data to JSON, similar to clj->js, but does it in a way that allows restauration of the EDN types on the conversion back (keywords, symbols, uuids, etc...). The intended application is to be able to store data from EDN in JSON document stores (like MongoDB, IndexedDB...) in a way that keeps them efficient (leveraging the structure) while enable the data to be converted back to it's original form. More details on the README.

mafcocinco14:01:05

Is this similar to transit?

isak15:01:10

For transit, they specifically caution against storing the results, while this one encourages it @U6SN41SJC

mafcocinco15:01:06

Ah, makes sense. So they are complimentary? Or would you say edn-json is a super set of the functionality that transit provides?

isak15:01:02

Yea, complementary, I think. It sounds like it would still make sense to use transit for transport, and this for anything durable (or if you need other JS-like tools to be able to interact with it easily)

shaun-mahood15:01:00

I believe that transit no longer discourages you from using it to store results - they updated the readme after having no breaking changes for a few years.

favila16:01:33

I think the distinction is, transit uses json as a storage/transmission medium, but edn-json actually translates to json

favila16:01:10

the json transit produces is good for ensuring faithful round-trips in and out of edn types, but itโ€™s not good for consuming as json

favila16:01:47

edn-json gives up some round-tripability to get something that a native json environment could consume comfortably

pithyless21:01:19

FYI - a typo in the README:

(= (edn->json #uuid "") "__edn-value|#uuid foo/symb")

wilkerlucio12:01:05

thanks, fixed

petr.mensik16:01:58

Hello guys, I just released a new library for working with Microsoft Exchange. It's built on top of ews-java-api so it simplifies communication with Exchange a lot. Any suggestions or PRs are very welcomed ๐Ÿ™‚ https://github.com/pmensik/exchange-api

eval202016:01:46

New release for deps-try - Quickly try out dependencies on rebel-readline. https://gitlab.com/eval/deps-try/tree/master#deps-try Updates: - rebel-readline now pprints return values (thanks to @dominicm) - invoke without dep Get Started

$ clojure -A:try clj-time
...
user=> (require '[clj-time.core :as t])
user=> (t/now)
;; add additional dependencies
user=> :repl/try tick

p-himik16:01:37

How is deps-try better than using -Sdeps? It's a bit less verbose (assuming deps-try is added in the user's clj config), but is there something I'm missing?

eval202017:01:45

It's indeed similar to (but way easier than) clojure -A:rebel -Sdeps '{:deps {foo {:mvn/version "RELEASE"} some-other {:mvn/version "RELEASE"}}}'. Additionally deps-try allows to add dependencies once the repl is running via :repl/try other-dep.

p-himik17:01:40

Ah, I can see that you use clojure.tools.deps.alpha.repl/add-lib - that's what I do myself. :) Nice!