Fwd: Introducing Aquameta 0.1

From: Eric Hanson <eric(at)aquameta(dot)com>
To: pgsql-infra(at)postgresql(dot)org, pgsql-www(at)postgresql(dot)org
Subject: Fwd: Introducing Aquameta 0.1
Date: 2017-09-05 02:26:03
Message-ID: CACA6kxjfkUGqprvf7qCNMRwqbHyGSBk_sNRKiTv-R0X35Pjp8g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce pgsql-www

Hi,
Not sure who I should be asking about this but Mark Wong suggested these
two mailing lists. I sent the announce of Aquameta 0.1 out a few days ago
to pgsql-announce, but it hasn't posted yet. I got a notification back
that it was stalled pending approval. A few other announcements have gone
out since then though. Did I do something wrong or is there any policy I
should be consulting? I'm forwarding the email I sent.
Thanks,
Eric
--
Eric Hanson
CEO, Aquameta Labs
503-929-1073
www.aquameta.com

---------- Forwarded message ----------
From: Eric Hanson <eric(at)aquameta(dot)com>
Date: Thu, Aug 31, 2017 at 4:17 AM
Subject: Introducing Aquameta 0.1
To: pgsql-announce(at)postgresql(dot)org

Hi all,

I'm happy to announce the release of Aquameta, a peer-to-peer network for
exchanging "bundles", a new kind of complex data object that can be almost
anything. They can include code, web apps, data, images and more, and
together create a kind of "smart object" that is very versatile and
open-ended.

Today, users can exchange emails, publish web pages, exchange binaries via
p2p apps, and much more. We'd like to see Aquameta become another kind of
network, one where users exchange these bundled complex data objects that
hopefully do fun, interesting and useful stuff. Because bundles are made
up of data, we claim that it's a very wide pipe for creativity and
interactivity, one that opens up a whole new world of possibilities.

Under the hood, Aquameta is a bunch of PostgreSQL schemas that handle
things like version control, web hosting, user interface, events, peer to
peer communication, etc. A bundle is made up of rows in these tables and
any others that users might wish to create.

Aquameta has a web interface that lets users build and exchange these
bundles. They can be sent either server-to-server via http, or
browser-to-browser via WebRTC. The networked-communication aspect of
Aquameta is still under development and experimentation.

Aquameta can be installed on a desktop, a server, in the cloud or on a
small device such as a Raspberry Pi.

Under the hood are a lot of PostgreSQL modules which hopefully can be
useful to the PostgreSQL community. They include:

1) meta - a writable system catalog, that makes common DDL operations like
schema changes accessible via INSERT, UPDATE and DELETE

- insert into meta.role(name, superuser, password) values ('joe', true,
'mypass');
- insert into meta.schema(name) values ('my_schema');

2) bundle - a version control system for data, similar to git, but for rows
in the database instead of files

- select bundle.stage_row_add(
meta.row_id('public','countries','id','UK')
);
- select bundle.commit('org.aquameta.countries','add uk.');
- select bundle.checkout('org.aquameta.games.snake');

3) event - a pub/sub event system for subscribing to data changes on a
particular column, row or table

- select session_create();
- select subscribe_table(meta.relation_id('widget','machine'));

4) filesystem - a foreign data wrapper that lets you SELECT files and
directories from the filesystem, and a daemon called postgrefs, which lets
you navigate the database from the filesystem as if it were files and
directories

- aquameta=# select name, path, permissions, content, owner from
filesystem.file where path='/etc/issue';
name | path | permissions | content | owner
-------+------------+-------------+--------------------------+-------
issue | /etc/issue | 0644 | Ubuntu 14.04.5 LTS \n \l+| root
| | | +|
| | | |
(1 row)
- $ ls /mnt/aquameta/public/countries

5) www - a web server that exposes the database over http, including a REST
interface for data manip and function calls, hosting of arbitrary
resources, and an authentication layer that uses PostgreSQL ROLEs and
PRIVILEGEs

- aquameta=# select path, m.mimetype, substring(content from 1 for 15)
from endpoint.resource r
join endpoint.mimetype m on r.mimetype_id = m.id limit 2;
path | mimetype | substring
-------+-----------+-----------------
/docs | text/html | <!DOCTYPE html>
/dev | text/html | <!DOCTYPE html>
- select endpoint.request('0.1','GET','/docs')

6) widget - a user interface component framework, where web pages are
composed of "widgets", UI components made of html, css and javascript, that
accept arguments and support javascript dependencies

- select * from widget.widget;
- select * from widget.widget_dependency_js;

7) semantics - a metadata layer for the database schema, where columns,
relations, foreign keys and more can be "decorated" with additional
semantic meaning

- insert into semantics.relation (relation_id, purpose_id, widget_id)
values
(
meta.relation_id('ecomm','customer'),
(select purpose_id from semantics.purpose where purpose='row_detail'),
(select id from widget.widget where name='customer_list_view')
);

Aquameta is in very early stages, despite being under development for
years. It is finally at the point of being a marginally functional
prototype that hopefully is pointed in the right direction, but there is
still much to be done. The user interface is just beginning to take shape,
the system is not secure, test coverage is sparse, and there are surely
many bugs and missing features. We are releasing it at this early stage to
get feedback and invite contributors to help out.

To give Aquameta a spin, head over to github and consult the README which
contains install instructions:

http://github.com/aquametalabs/aquameta

A demo video is available at
http://aquameta.org/

To jump into development, check out the project's roadmap, and join our IRC
channel and mailing list:

http://aquameta.org/roadmap
#aquameta on irc.freenode.net
https://groups.google.com/forum/#!aboutgroup/aquameta-discuss

Thanks,
Eric
--
Eric Hanson
CEO, Aquameta Labs
503-929-1073 <(503)%20929-1073>
www.aquameta.com

In response to

Responses

Browse pgsql-announce by date

  From Date Subject
Next Message Tatsuo Ishii 2017-09-05 02:51:30 Re: Fwd: Introducing Aquameta 0.1
Previous Message David Fetter 2017-09-04 02:37:17 == PostgreSQL Weekly News - September 04 2017 ==

Browse pgsql-www by date

  From Date Subject
Next Message Tatsuo Ishii 2017-09-05 02:51:30 Re: Fwd: Introducing Aquameta 0.1
Previous Message Bruce Momjian 2017-09-04 23:10:42 Re: Core Team number