Re: [Development] QtCS 2018 - Serialisation session notes

2018-06-13 Thread Bogdan Vatra via Development
Hi,

> 
> === Protobuf ===
> 
> * Need volunteers to write a Proof of Concept
> ** plugin to protoc?

  IMHO flatbuffers (https://google.github.io/flatbuffers/) has quite a few 
advantages over protocol buffers (one that I really like is that the only 
dependency your app has is a single .h file, which makes it very portable).
Here https://github.com/bog-dan-ro/flatbuffers I have an old fork that adds Qt 
support to flatbuffers.

The only disadvantage that I found is that the maintainer was a little bit 
difficult to work with :).

Cheers,
BogDan.


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QtCS 2018 - Serialisation session notes

2018-06-13 Thread Alejandro Exojo via Development
On Tuesday 12 June 2018 00:41:38 Thiago Macieira wrote:
> On Monday, 11 June 2018 22:50:09 CEST Rafael Roquetto wrote:
> > Would it also make sense to explore msgpack?  https://msgpack.org/
> 
> No. Msgpack is the older version of CBOR, which we already have.

CBOR is IMHO better than Message Pack, but I don't see it as "the older 
version of CBOR". Rather, a different community (which in my experience has a 
larger adoption rate because it came first). I don't think we need support for 
it on Qt, but people who need to interoperate with it, will need one of the 
existing libraries.

-- 
Viking Software, Qt and C++ developers for hire
http://www.vikingsoftware.com

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QtCS 2018 - Serialisation session notes

2018-06-11 Thread Thiago Macieira
On Monday, 11 June 2018 22:50:09 CEST Rafael Roquetto wrote:
> Would it also make sense to explore msgpack?  https://msgpack.org/

No. Msgpack is the older version of CBOR, which we already have.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QtCS 2018 - Serialisation session notes

2018-06-11 Thread Rafael Roquetto
On Mon, Jun 11, 2018 at 01:39:07PM +0200, Thiago Macieira wrote:
> On Monday, 11 June 2018 13:23:21 CEST Liang Qi wrote:
> > On Mon, 11 Jun 2018 at 13:17, Thiago Macieira 
> > 
> > wrote:
> > > Link: https://wiki.qt.io/QtCS2018_Serialisation
> > > 
> > > === Protobuf ===
> > > 
> > > * Need volunteers to write a Proof of Concept
> > > ** plugin to protoc?
> > > 
> > > About protobuf support in Qt, I have an old WIP change at
> > 
> > https://codereview.qt-project.org/#/c/205316/ . But not sure whether it can
> > help here or not.
> 
> The point is that I want a proof of concept of what can be done.
> 
> There can be two objectives:
> 
> 1) protobuf is an implementation detail
> We use it to transport Qt state, but it's not exposed in the API
> 
> 2) protobuf is an objective
> Communication with another endpoint (non-Qt) that uses the same Protobuf IDL
> 
> Either might be an interesting addition to Qt. I'd like to see an exploration 
> of the possibilities and what limitations would turn up.

Would it also make sense to explore msgpack?  https://msgpack.org/

I haven't attended to QtCS so please disregard if this does not make sense.

> 
> -- 
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
> 
> 
> 
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

-- 
Rafael Roquetto | rafael.roque...@kdab.com | Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - The Qt, C++ and OpenGL Experts


smime.p7s
Description: S/MIME cryptographic signature
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QtCS 2018 - Serialisation session notes

2018-06-11 Thread Thiago Macieira
On Monday, 11 June 2018 13:23:21 CEST Liang Qi wrote:
> On Mon, 11 Jun 2018 at 13:17, Thiago Macieira 
> 
> wrote:
> > Link: https://wiki.qt.io/QtCS2018_Serialisation
> > 
> > === Protobuf ===
> > 
> > * Need volunteers to write a Proof of Concept
> > ** plugin to protoc?
> > 
> > About protobuf support in Qt, I have an old WIP change at
> 
> https://codereview.qt-project.org/#/c/205316/ . But not sure whether it can
> help here or not.

The point is that I want a proof of concept of what can be done.

There can be two objectives:

1) protobuf is an implementation detail
We use it to transport Qt state, but it's not exposed in the API

2) protobuf is an objective
Communication with another endpoint (non-Qt) that uses the same Protobuf IDL

Either might be an interesting addition to Qt. I'd like to see an exploration 
of the possibilities and what limitations would turn up.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QtCS 2018 - Serialisation session notes

2018-06-11 Thread Liang Qi
On Mon, 11 Jun 2018 at 13:17, Thiago Macieira 
wrote:

> Link: https://wiki.qt.io/QtCS2018_Serialisation
>
> === Protobuf ===
>
> * Need volunteers to write a Proof of Concept
> ** plugin to protoc?
>
> About protobuf support in Qt, I have an old WIP change at
https://codereview.qt-project.org/#/c/205316/ . But not sure whether it can
help here or not.

Best Regards,
Liang
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] QtCS 2018 - Serialisation session notes

2018-06-11 Thread Thiago Macieira
Link: https://wiki.qt.io/QtCS2018_Serialisation

=== Binary JSON ===

* Was created for qtjsondb
* fast reading
* mmap()able
* Deprecate soon (Qt 5.12?)
** Remove from QJsonDocument in Qt 6
** Provide compat API to read
*** BSJON → JSON → parse again

=== QJsonDocument ===

* Limited to 128 MB of RAM footprint (due to Binary JSON)
* Needs to be fixed before Qt 6
* Can use the same backend as QCborValue
* Complaint: updating in-place is not easy
** If you update an entry in a node, you have to update the chain leading to 
it
** QCborValue has the same problem, as it was designed to have the same API

QJsonValue foo = ...;
foo["s"] = "value"; // does not compile
foo.toObject()["s"] = "value";  // updates the temporary!

// must write instead:
QJsonObject fooObject = foo.toObject();
fooObject["s"] = "value";
setFoo(fooObject);

=== Common DOM API? ===

* Should we have a common API for manipulating trees of JSON-like values?
* QCborValue is a superset of QJsonValue
** But it would be confusing to users to use CBOR classes to manipulate JSON
** Generic name?
* What other uses would this API have?
** Replace QJSValue (QtQml)?
** Replace QVariantMap?
** Entry point for a Protobuf API?
* How to make sure people can't insert combinations not allowed in the output?
** For example, associative containers using integers as keys in JSON
** Do they do that? Maybe they won't write such code
*** They know what their content is used for
** We could use templates, specialising for CBOR, JSON, etc.
** We could have a wrapper class that has inlines and provides only the 
possible combinations

* QCborValue integrated last Friday into QtCore 5.12
** Need to know in the next few weeks if we keep it for 5.12
** Can yank it out and move to a new module for Tech Preview

=== Serialising Qt state ===

* Needed by Qt Remote Objects
* Slightly different from CBOR and JSON purposes
** Not about a standardised representation of a data model
** More about transmitting state from two independent processes of the same 
application
* Currently using QDataStream
** Has a lot of problems, can't really detect errors and not extensible enough
* Need more exploration, no conclusion

=== Protobuf ===

* Need volunteers to write a Proof of Concept
** plugin to protoc?

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development