component
specs
component | specs | |
---|---|---|
13 | 13 | |
2,068 | 2,415 | |
0.0% | 1.1% | |
0.0 | 6.4 | |
about 2 years ago | 12 days ago | |
Clojure | Rust | |
MIT License | Apache 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.
component
-
A History of Clojure (2020) [pdf]
* Lifecycle management: Mount, Integrant or Component (https://github.com/tolitius/mount https://github.com/weavejester/integrant and https://github.com/stuartsierra/component)
-
Generic functions, a newbie question
When you start to have multiple stateful components (the database, the HTTP server, your Redis connection, a page cache, etc.), then you'll want to use a library like component that manages their (inter-)dependencies and provides a consistent notion of lifecycle.
- What makes Clojure better than X for you?
- Clojure needs a Rails, but not for the reason you think
-
[ANN] Reveal Pro 1.3.308 — sticker windows for system libraries (component, integrant, mount)
Today I released a new version of Reveal Pro — dev.vlaaad/reveal-pro {:mvn/version "1.3.308"} — that adds sticker integration for system libraries such as mount, component and integrant!
-
Printf(“%s %s”, dependency, injection)
I agree with the main sentiment from the article. Although I do think they are discussing Inversion of control more-so than dependency injection.
One of my first languages was .net and I was never able to really understand DI in that context that well.
Actually using javascript and ducktyping made me understand what it actually was.
I remember a .net job interview where I had to write a micro-service and opted to construct the dependency graph in the main function initialising "all" the classes there. Instead of discussing the pro's and con's of that approach they berated me for not using a DI framework (No I did not land that job, but in hindsight it was the most expensive job interview I've ever had. The room was filled with 8 developers going over my code).
The main thing the article glosses over is state. something people with a functional background hide from. But if you look at something like the httpclient in .net. I think it took the .net world like 10 years to start using the httpclient properly. Scope and lifetime of those kind of objects are important. managing connection pools, retry state, throttling or the incoming http request. DI does make that kind of thing easieR (I'm not saying it makes it better)
Look at clojure's component(https://github.com/stuartsierra/component), I'm not a clojure expert by far. But it is kinda DI/IOC in a functional language.
In closing we can agree that it is underused in the right places and overused in the wrong ones.
- Forcing engineers to release by some arbitrary date results in shipping unfinished code - instead, ship when the code is ready and actually valuable
-
How to pass components across functions
https://github.com/stuartsierra/component#no-function-should-take-the-entire-system-as-an-argument
-
There are a *lot* of actor framework projects on Cargo.
Yeah like I mentioned I'm not like super sold on the everything-should-be-an-actor paradigm, but I find value in DDD + a light implementation of Components (similar to stuartsierra/component).
-
Essential libraries?
https://github.com/stuartsierra/component for managing components lifecycles in projects
specs
-
Why ECS pattern is popular in Rust?
The question arises from seeing a plethora of projects using ECS: hecs , Bevy , specs, legion
-
Want to learn how to make games with Rust and the Bevy game engine? Now is a great time to jump in with the recently released Bevy version 0.10. I created a Bevy 0.10 beginner tutorial video series for those looking to learn and join our game dev community!
Instead, I'm using now the specs Library. It's a pure ECS library and much less powerful, without any visualization capabilities, but its works for me :)
-
Is implementing an ECS in rust a bad idea for a beginner project?
writing an ECS is defined a challenging project, no matter the language or if you're a beginner. although it is entirely possible to write one in Rust, check out specs and bevy_ecs for examples.
-
Ecs fundamentally at odds with borrow checker.
specs
- Goggles - A specs-derived DIY library for doing ECS
-
Veloren is releasing 0.13!
The official 3d rendering client uses a custom engine called Voxygen. They use Specs for logic.
-
How are rust devs doing?
Rust has a delightful ECS library, specs, that I absolutely love. It has safe multi-threaded execution built right in, which is fantastic for the pretty parallelizable work I was doing. Concurrency in C++ is nasty business on the best of days, and I've run into so many nasty bugs with the custom system I've had to build out to fit the web's weird threading model.
-
Programming a Rogue-Like with Rust
Man, this Specs [0] library is so strange to me, coming from a Unity background. Is there some sort of comparison as to why one way is better than the other?
[0] https://specs.amethyst.rs/
-
Bellclone: a simple 2D game about jumping
Hi everyone - I just picked up one of my long-unfinished side project built with Rust and would like to show it to you here. It's a clone of the famous(?) Winterbells game. It's written entirely in Rust and uses OpenGL and an entity-component-system architecture ([the `specs` crate](https://crates.io/crates/specs)) (still learning), no game engine.
-
There are a *lot* of actor framework projects on Cargo.
Wait did the person at your company write specs or something else because they weren't pleased with it? I don't know much about amethyst and vaguely know about entity component systems but I watched a talk on someone making a game with amethyst and was pretty impressed -- it looked thoroughly approachable and I do not doubt the performance is there (since the whole reason you do ECS is performance).
What are some alternatives?
integrant - Micro-framework for data-driven architecture
bevy - A refreshingly simple data-driven game engine built in Rust
reitit - A fast data-driven routing library for Clojure/Script
Amethyst - Data-oriented and data-driven game engine written in Rust
mount - managing Clojure and ClojureScript app state since (reset)
ggez - Rust library to create a Good Game Easily
ultra - A Leiningen plugin for a superior development environment
Crayon - A small, portable and extensible game framework written in Rust.
awesome-clojure - A curated list of awesome Clojure libraries and resources. Inspired by awesome-... stuff
piston - A modular game engine written in Rust
Luxon - ⏱ A library for working with dates and times in JS
RG3D - 3D and 2D game engine written in Rust [Moved to: https://github.com/FyroxEngine/Fyrox]