Commit 78ab15e1 authored by Kenton Varda's avatar Kenton Varda

Actually, all these headings are wrong.

parent c2c1560c
...@@ -8,7 +8,7 @@ title: Road Map ...@@ -8,7 +8,7 @@ title: Road Map
This is a list of big ideas we'd like to implement in Cap'n Proto. We don't know in what order This is a list of big ideas we'd like to implement in Cap'n Proto. We don't know in what order
these will actually happen; as always, real work is driven by real-world needs. these will actually happen; as always, real work is driven by real-world needs.
### Language Features ## Language Features
* **Inline lists:** Lets you define a field composed of a fixed number of elements of the same * **Inline lists:** Lets you define a field composed of a fixed number of elements of the same
type, and have those elements be stored directly within the struct rather than as a separate type, and have those elements be stored directly within the struct rather than as a separate
...@@ -25,7 +25,7 @@ these will actually happen; as always, real work is driven by real-world needs. ...@@ -25,7 +25,7 @@ these will actually happen; as always, real work is driven by real-world needs.
nicer interface which encapsulates the type's inner state. nicer interface which encapsulates the type's inner state.
* **Maps:** Based on encapsulated and parameterized types. * **Maps:** Based on encapsulated and parameterized types.
### RPC Protocol Features ## RPC Protocol Features
* **Dynamic schema transmission:** Allow e.g. Python applications to obtain schemas directly from * **Dynamic schema transmission:** Allow e.g. Python applications to obtain schemas directly from
the RPC server so that they need not have a local copy. Great for interactive debugging. the RPC server so that they need not have a local copy. Great for interactive debugging.
...@@ -44,7 +44,7 @@ these will actually happen; as always, real work is driven by real-world needs. ...@@ -44,7 +44,7 @@ these will actually happen; as always, real work is driven by real-world needs.
[libsodium](https://github.com/jedisct1/libsodium) and the [libsodium](https://github.com/jedisct1/libsodium) and the
[Noise Protocol Framework](http://noiseprotocol.org/) as much as possible. [Noise Protocol Framework](http://noiseprotocol.org/) as much as possible.
### C++ Cap'n Proto API Features ## C++ Cap'n Proto API Features
* **Plain Old C Structs:** The code generator should also generate a POCS type corresponding * **Plain Old C Structs:** The code generator should also generate a POCS type corresponding
to each struct type. The POCS type would use traditional memory allocation, thus would not to each struct type. The POCS type would use traditional memory allocation, thus would not
...@@ -66,7 +66,7 @@ these will actually happen; as always, real work is driven by real-world needs. ...@@ -66,7 +66,7 @@ these will actually happen; as always, real work is driven by real-world needs.
* **Annotations API:** For each annotation definition, generate code which assists in extracting * **Annotations API:** For each annotation definition, generate code which assists in extracting
that annotation from schema objects in a type-safe way. that annotation from schema objects in a type-safe way.
### C++ KJ API Features ## C++ KJ API Features
KJ is a framework library that is bundled with Cap'n Proto, but is broadly applicable to C++ KJ is a framework library that is bundled with Cap'n Proto, but is broadly applicable to C++
applications even if they don't use Cap'n Proto serialization. applications even if they don't use Cap'n Proto serialization.
...@@ -84,7 +84,7 @@ applications even if they don't use Cap'n Proto serialization. ...@@ -84,7 +84,7 @@ applications even if they don't use Cap'n Proto serialization.
loop libraries, such as libuv, libev, libevent, boost::asio, and others, so that it's easier loop libraries, such as libuv, libev, libevent, boost::asio, and others, so that it's easier
to use Cap'n Proto RPC in applications that already use another event framework. to use Cap'n Proto RPC in applications that already use another event framework.
### Storage ## Storage
* **ORM interface:** Define a standard interface for capabilities that represent remotely-stored * **ORM interface:** Define a standard interface for capabilities that represent remotely-stored
objects, with get, put, publish, and subscribe methods. Ideally, parameterize this interface objects, with get, put, publish, and subscribe methods. Ideally, parameterize this interface
...@@ -94,7 +94,7 @@ applications even if they don't use Cap'n Proto serialization. ...@@ -94,7 +94,7 @@ applications even if they don't use Cap'n Proto serialization.
is only useful for read-only structures.) Possibly based on the ORM interface, updates only is only useful for read-only structures.) Possibly based on the ORM interface, updates only
possible at the granularity of a whole ORM entry. possible at the granularity of a whole ORM entry.
### Tools ## Tools
* **Schema compatibility checker:** Add a `capnp` command which, given two schemas, verifies * **Schema compatibility checker:** Add a `capnp` command which, given two schemas, verifies
that the latter is a compatible upgrade from the former. This could be used as a git hook that the latter is a compatible upgrade from the former. This could be used as a git hook
...@@ -102,7 +102,7 @@ applications even if they don't use Cap'n Proto serialization. ...@@ -102,7 +102,7 @@ applications even if they don't use Cap'n Proto serialization.
* **RPC debugger:** Add a `capnp` command which sends an RPC from the command line and prints * **RPC debugger:** Add a `capnp` command which sends an RPC from the command line and prints
the result. Useful for debugging RPC servers. the result. Useful for debugging RPC servers.
### Quality Assurance ## Quality Assurance
These things absolutely must happen before any 1.0 release. Note that it's not yet decided when These things absolutely must happen before any 1.0 release. Note that it's not yet decided when
a 1.0 release would happen nor how many 0.x releases might precede it. a 1.0 release would happen nor how many 0.x releases might precede it.
...@@ -114,7 +114,7 @@ a 1.0 release would happen nor how many 0.x releases might precede it. ...@@ -114,7 +114,7 @@ a 1.0 release would happen nor how many 0.x releases might precede it.
* **Security review:** We need a careful security review to make sure malicious input cannot * **Security review:** We need a careful security review to make sure malicious input cannot
crash an application or corrupt memory. crash an application or corrupt memory.
### Infrastructure ## Infrastructure
Note: These are very large projects. Note: These are very large projects.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment