im-rs
clojure-toolbox.com
im-rs | clojure-toolbox.com | |
---|---|---|
6 | 2 | |
1,459 | 175 | |
- | - | |
0.0 | 5.9 | |
over 1 year ago | about 1 month ago | |
Rust | CSS | |
Mozilla Public License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
im-rs
-
Steel – An embedded scheme interpreter in Rust
They're using hash array mapped tries. I don't have my own personal implementation, I have been using https://github.com/bodil/im-rs until I can get around to making my own implementation (not that I really need to, but it would be a fun exercise).
Functions generate a hash based on a unique id generated for the function, plus the hash of any captured variables, and a hash of the pointer address to the function). That is off the top of my head though so I could be missing some details.
Hashing maps is tricky! With a sufficiently deep hash map you can run into problems since that invokes an equality check as well - at least how I handle it, is that you just attempt to naively hash the keys and values of the hash map, to create a hash code for that object. If the equality check ends up with a sufficiently large depth, eq returns false so we don't stack overflow.
-
for_ch: The hydraulic machine for your code
Too late my friend ;) https://github.com/bodil/im-rs
- (Risp (In (Rust) (Lisp)))
-
Noteworthy concurrent data structures?
There’s also im.
-
Providing a thread safe and non thread safe version of a library.
rc/Cargo.toml specifies paths such as ../src/lib.rs and ../build.rs to point at the same source files
-
High performance functional data structures in Rust
If you indeed do care about access to historical versions of data, take a look at the I’m crate: https://github.com/bodil/im-rs
clojure-toolbox.com
- Steel – An embedded scheme interpreter in Rust
-
Ask HN: Why does the Clojure ecosystem feel like such a wasteland?
> The getting started page remains as bad as I remember it with links to discontinued Github projects.
I assume you mean https://clojure.org/guides/getting_started. That page has just a handful of links and none of them lead to unmaintained/discontinued projects.
If you mean something else, please be more concrete. "The page has bad stuff" is not actionable, and it's hard to distinguish unmaintained/discontinued/"dead" from complete, even when there are still open issues and users complaining.
Same comment about https://www.clojure-toolbox.com. Keeping track of everything is a _lot_ of work that's IMO unreasonable to expect the author of the toolbox to be doing all the time. As the web page mentions in its footer, "Library suggestions can be submitted [at] the project page" - https://github.com/weavejester/clojure-toolbox.com. And people are doing that, and their suggestions are being taken into account.
> For example the getting started for Pedestal, one of the main web libraries has its Getting Started page last updated seven years ago? http://pedestal.io/guides/hello-world
And?.. Pedestal is stable, its main feature set hasn't changed in years and probably won't change - why would the guide need to be updated?
What are some alternatives?
dashmap - Blazing fast concurrent HashMap for Rust.
clojure-site - clojure.org site
syncbuf - A small library of append-only, thread-safe, lock-free data structures.
clojure - The Clojure programming language
concurrent - A crate with some concurrent data structures.
im-lists - Immutable unrolled linked lists
glsp - The GameLisp scripting language
crossbeam - Tools for concurrent programming in Rust
steel - An embedded scheme interpreter in Rust
samsara - a reference-counting cycle collection library in rust
helix - A post-modern modal text editor.