I'd say it's a bit more similar to ActiveModel + ActiveModel::Serializer, or Waterline & JugglingDB in the Node.js realm, in that they can be used for the same purpose but go about the problem differently.
Looks like axiom is coupled to RDBMS, while fortune tries to abstract away the data store (there are mongodb & postgres adapters) by providing a contract for reading/writing data. virtus looks very similar to the implementation of record type in fortune, has some extra features such as type coercion and lacks some features such as foreign keys.
Axiom is a relational algebra library it doesn't abstract an rdbms at all. The way datamapper 2 worked from my understanding was virtus was a property like api e.g. a back end agnostic schema that describes the data, axiom takes the relations (if any) from virtus then hands off the relations to a back end such as SQL, mongo, graphql query generator and optimizer. Datamapper 2 from looking is a much better structure.
There are a few companies using it in production (and I use it for my work as the author of it), I just haven't bothered to ask for permissions etc. I discussed with one of the ember core team about replacing ember-cli's http-mock/fixtures with fortune, it seems doable by reusing ember data models in the backend. since they both support JSON API standard, the interaction should be frictionless.
9 comments
[ 4.3 ms ] story [ 31.8 ms ] threadLooks like axiom is coupled to RDBMS, while fortune tries to abstract away the data store (there are mongodb & postgres adapters) by providing a contract for reading/writing data. virtus looks very similar to the implementation of record type in fortune, has some extra features such as type coercion and lacks some features such as foreign keys.
if you're interested in query implementation have a look at how the postgres adapter maps the adapter contract to sql: https://github.com/fortunejs/fortune-postgres/blob/master/li...
The code for that one lives here: https://github.com/unindented/fortune-example
"Fortune includes a browser build, which comes with the IndexedDB"
Brilliant. This is exactly what I've been looking for.