You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs/content/CHANGELOG.md
+46-1Lines changed: 46 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,51 @@ All notable changes to Rayforce-Py will be documented in this file.
5
5
!!! note ""
6
6
You can also subscribe for release notifications by joining our [:simple-zulip: Zulip](https://rayforcedb.zulipchat.com/#narrow/channel/549008-Discuss)!
7
7
8
+
## **`2.0.0`**
9
+
10
+
First release against the **Rayforce v2 C core**. This is a major release with
11
+
breaking changes to the type system, the network layer, and the plugin surface.
12
+
The `1.0.x` line continues to be maintained against the v1 core.
13
+
14
+
### Breaking Changes
15
+
16
+
-**Built against the Rayforce v2 C core.** The bundled engine, build pipeline
17
+
(`make app`), and binary protocol all target v2. Code written against the v1
18
+
core may need updates — see the items below.
19
+
-**Removed the `C8` / `Char` type.** v2 has no standalone character type; a
20
+
single character is now a length-1 [`String`](./documentation/data-types/string.md).
21
+
`C8` is no longer importable from `rayforce`.
22
+
-**Removed WebSocket support.** The `WSClient` / `WSServer` classes and the
23
+
entire `rayforce.network.websocket` module have been removed. Use
24
+
[TCP IPC](./documentation/IPC.md) (`TCPClient` / `TCPServer`) for networked queries.
25
+
-**Renamed the KDB+ plugin.**`rayforce.plugins.raykx` is now
@@ -266,7 +311,7 @@ All notable changes to Rayforce-Py will be documented in this file.
266
311
267
312
### New Features
268
313
269
-
-**Added WebSocket support**: New `WSClient` and `WSServer` classes in `rayforce.network.websocket` module for WebSocket-based communication. See [WebSocket documentation](./documentation/websocket.md) for details.
314
+
-**Added WebSocket support**: New `WSClient` and `WSServer` classes in the `rayforce.network.websocket` module for WebSocket-based communication.
270
315
-**Added TCP client/server**: New `TCPClient` and `TCPServer` classes in `rayforce.network.tcp` module exported from the main package.
271
316
-**Added `asof_join()` method** to `Table` class for as-of joins (time-based joins). See [Joins documentation](./documentation/query-guide/joins.md#as-of-join) for details.
272
317
-**Added `ipcsave()` method** to `Table` and query objects (`SelectQuery`, `UpdateQuery`, `InsertQuery`, `UpsertQuery`, `LeftJoin`, `InnerJoin`, `AsofJoin`, `WindowJoin`) for saving query results in IPC connections.
Copy file name to clipboardExpand all lines: docs/docs/content/documentation/IPC.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,13 +9,13 @@ TCP IPC in Rayforce-Py consists of two main components:
9
9
-**`TCPServer`** - Listens for incoming TCP connections on a specified port
10
10
-**`TCPClient`** - Connects to remote Rayforce instances and executes queries
11
11
12
-
The TCP IPC implementation uses Rayforce's native runtime event loop, ensuring optimal performance and seamless integration with the Rayforce ecosystem.
12
+
The TCP IPC implementation uses Rayforce's native IPC protocol, ensuring optimal performance and seamless integration with the Rayforce ecosystem.
13
13
14
14
---
15
15
16
16
## :material-server: TCP Server
17
17
18
-
The `TCPServer` class allows you to create a server that listens for incoming TCP connections. The server runs on Rayforce's native event loop.
18
+
The `TCPServer` class allows you to create a server that listens for incoming TCP connections. The server runs a blocking poll loop over Rayforce's native IPC protocol.
19
19
20
20
### Creating a Server
21
21
@@ -26,20 +26,20 @@ To create a TCP server, import `TCPServer` and initialize it with a port:
26
26
27
27
>>> server = TCPServer(port=5000)
28
28
>>> server
29
-
TCPServer(port=5000)
29
+
TCPServer(port=5000, idle)
30
30
```
31
31
32
32
### Starting the Server
33
33
34
-
The `listen()` method starts the server and blocks until the event loop exits:
34
+
The `listen()` method starts the server and blocks until the server is stopped:
35
35
36
36
```python
37
37
>>> server.listen()
38
38
Rayforce IPC Server listening on 5000 (id:123)
39
39
```
40
40
41
41
!!! note "Blocking Operation"
42
-
The `listen()` method is **blocking** - it will run until the event loop is stopped (e.g., via KeyboardInterrupt or program termination). The server automatically closes the port when the event loop exits, so no manual cleanup is needed.
42
+
The `listen()` method is **blocking** - it will run until the server is stopped (e.g., via KeyboardInterrupt or program termination). The server automatically closes the port when the loop exits, so no manual cleanup is needed.
43
43
44
44
---
45
45
@@ -117,7 +117,7 @@ The `ipcsave()` method allows you to save query results or tables to a remote Ra
0 commit comments