Commit Graph

42 Commits

Author SHA1 Message Date
원형식 23b9a6a00a
Apply changed comments of JS-SDK (#42) 2022-11-25 23:45:50 +09:00
원형식 7477cbaf0f
Add a github action to publish API reference docs (#41) 2022-11-25 23:44:45 +09:00
Jung gyun Ahn 8d1cb78bdf
Implement the Counter (#40)
* Add CRDT Counter

* Implement the Counter

* Remove force cast

* Correct comment typo

* Change access control of CRDTCounter

* Change parameter name

* Add YorkieCountable.swift

* Delete garbage codes

* Move GRPC test unit to integration
2022-11-23 23:43:06 +09:00
원형식 17ab7a9ddc
Setup for integration tests (#39)
* Divide tests groups into units and integration
* Setup for integration tests
* Rename Github action
2022-11-23 11:29:57 +09:00
원형식 d953ee0d46
Add get(keyPath:) to JSONObject (#38)
* Rename YorkieJSONObjectable to JSONObjectable
2022-11-23 02:43:20 +09:00
Jung gyun Ahn 3a8a7f59bd
Improve document sync test (#37)
* Change endian of Primitive values to little endian

* Improve Primitive Date
2022-11-11 23:50:29 +09:00
Jung gyun Ahn 28da76480d
Change endian of Primitive values to little endian (#36) 2022-11-10 21:13:22 +09:00
Jung gyun Ahn 75a6fcea9a
Convert Client from class to actor for concurrency. (#34)
* Convert Client from class to actor for concurrency.
* Remove force cast
2022-11-10 12:16:50 +09:00
원형식 f1aff95df0
Apply styles for Swift (#35)
* Apply styles for Swift
* Correct typos
2022-11-10 10:00:02 +09:00
원형식 ab0d8c92e9
Change some types from class to struct to avoid data racing (#33)
* Change the type of ChangePack from class to struct
* Change ``Change`` and types confirming ``Operation``  from class to struct
2022-11-10 09:41:54 +09:00
원형식 b91f55d056
Sync Kanban app with a local server and fix some bugs (#32)
* Add CodingKeys to KanbanCard and KanbanColumn

* Add eventStream.send to Document/applyChanges

* Change access modifiers of Client from internal to public

* Sync KanbanViewModel with the server
2022-11-09 10:22:41 +09:00
Jung gyun Ahn 1781b22511
Implement Client functions. (#31)
* Initial Implementation of the Client full features

* Change Indexable to Presence.

* Fix sync loop.

* Add integration tests for client

* Add Integration Test

* Fix Client Timer setting.

* Fix concurrent document syncing. and swiftFormat error.

* Change group task loop to waitForAll
2022-11-08 15:56:25 +09:00
원형식 f718a68adc
Add Kanban board to ExampleApp & Improve the interfaces of JSONObject and JSONArray (#30)
* Add Kanban board to ExampleApp
* Bind Document and KanbanViewModel
* Improve the interfaces of JSONObject and JSONArray
* Remove print
* Remove redandunt codes
* Rename CommonConstant to KanbanLayoutProperty
* Rename some variables
* Remove white spaces in files.
* Change YorkieJSONObjectable from Mirrot to Codable
* Change test codes from subscript access  to dynamicMemberLookup access
2022-11-08 12:08:21 +09:00
원형식 1bd4c0c7cc
Change Document from class to actor for concurrent access to it (#29)
* Change Document from class to actor for concurrent access to it

Remove redundant codes

Change TimeTicket/lamport and delimiter from var to let

* Change some access modifier of type properties
2022-11-03 10:08:09 +09:00
원형식 3a2cec8ea2
Create ExampleApp and fix some bugs (#28)
* Create ExampleApp

* Modify JSONArray/append  to return the number of elements

* Modify CRDTArray/toJSON use self for iteration
2022-11-03 10:02:44 +09:00
원형식 2ef8d7f60d
Add JSONArrays and unit tests for Document (#27)
* Add JSONArray and the tests

* Add test cases to JSONArrayTests

* Apply dynamicMemberLookup to JSONObject

* Add eventStream to Document and DocType

* Fix bugs of JSONArray

* Remove get(keyPath:) from JSONObject

* Add unit tests for Document

* Fix bugs for Heap.delete

* Change type_body_length of SwiftLint
2022-11-01 11:09:10 +09:00
원형식 976125d873
Remove features for dynamicMemberLookup from JSONObject (#26) 2022-10-27 16:31:18 +09:00
Jung gyun Ahn 3737f5f867
Implement converter between models and Protobuf (#24) 2022-10-25 19:16:44 +09:00
원형식 941c682da9
Add Trie, JsonObject, and Document (#25)
* Add Trie

* Add JsonObject and Document

Document and JsonArray are still in development.

* Rename Json to JSON
2022-10-25 16:45:21 +09:00
원형식 7084ee7660
Add ChangeID, Change, ChangeContext, CheckPoint and ChangePack (#23)
Co-authored-by: Jung gyun Ahn <Junggyun.ahn@navercorp.com>
2022-10-19 11:14:18 +09:00
원형식 ba5cd8decf
Modify escaping string (#22) 2022-10-13 19:38:23 +09:00
원형식 3e41826e3e
Add AddOperation and MoveOperation (#21) 2022-10-13 19:38:08 +09:00
원형식 e34214770b
Add CRDTRoot, Operation, SetOperation and RemoveOepration (#19)
* Add CRDTRoot
* Rename TimeTicket.initialTimeTicket and maxTimeTicket to initial and max
* Add RemoveOperation and SetOperation
* Remove redundant label from some methods in CRDTRoot
* Change some if to guard
2022-10-12 16:01:34 +09:00
Youngteac Hong f7bc8afba9
Skip tests that require Docker (#20)
Co-authored-by: hyeongsik-won <hyeongsik.won@navercorp.com>
2022-10-11 23:25:03 +09:00
Youngteac Hong 2ac151232a Ignore patch and project from the status check 2022-10-11 22:44:50 +09:00
원형식 5869a1052b
Add RHT (#17)
This commit implements RHTNode as a struct
and change `get` from returning nil to throwing errors.
2022-10-10 23:25:47 +09:00
Jung gyun Ahn 6dbcd6fb7a
Support Network byte order for Primitive values (#16) 2022-10-07 00:53:31 +09:00
원형식 d73ee309b0
Add CRDTObject (#15)
Co-authored-by: Youngteac Hong <susukang98@gmail.com>
2022-10-06 19:25:49 +09:00
원형식 28524d6dbd
Report the code coverage to Codecov (#14) 2022-10-06 17:05:48 +09:00
원형식 12487cc5d5
Add RHTPQMap and Change CRDTElement type from class to protocol (#13)
* Change Heap based on JS-SDK
* Add RHTPQMapNode
* Change access modifier of var and func in SplayNode
* Remove lint errors
* Remove unnessary comments
* Modify compare method of CRDTArray
* Change some method's names
* Simplify compare method of CRDTArray
* Change Swift-tools-version to 5.7
* Change RHTPQMapNode to be the value of HeaNode
* Change TimeTicket/toIDString to private
* Change setActor to mutating
* Chagne CRDTElement type class to protocol
* Change `release` and `purge` to `delete`
* Add isEmpty to Heap
* Add Collection/subscript(safe:) function
* Apply isEmpty of Heap to RHTPQMap
* Change chekcing nodes.count to isEmpty in Heap
* Add the empty_count rule to SwiftLint
2022-10-06 11:14:42 +09:00
원형식 8970794cb1
Add CRDTArray (#12) 2022-09-30 15:12:57 +09:00
원형식 bef7ac59f2
Add RGATreeList (#11)
This commit changes the type from class to struct and adds Hashable to
use `TimeTicket` as a key.
2022-09-28 20:23:35 +09:00
원형식 86446ee7ac
Implement basic types for CRDT data structure (#10)
This commit implements primitives for creating CRDT datatypes such as
TimeTicket, ActorID, CRDTElement, and so on.

We found a problem with the JS SDK using lamport as Uint64 and this
commit fixed it with Int64.
2022-09-27 18:08:33 +09:00
원형식 f51c46f2f3
Add SplayTree (#9)
This commit is working similarly to the JS SDK, so some codes may not
fit into Swift conventions. But we are going to take the whole
structure from JS SDK and apply it to Swift convention at once.
2022-09-16 19:21:11 +09:00
원형식 3e6345228e
Add Heap and RBTree (#8) 2022-09-15 19:31:41 +09:00
원형식 d34fafccf1
Add client activate/deactivate (#7)
Co-authored-by: Youngteac Hong <susukang98@gmail.com>
2022-09-14 21:21:13 +09:00
원형식 08b5a3e412
Create folders based on yorkie-js-sdk (#6)
Git can not add empty folders so added empty files.
2022-09-08 19:03:10 +09:00
원형식 f53ba267bd
Update swift.yml to use SwiftLint, SwiftFormat (#5)
Update CONTRIBUTING.md to add Code Style.
2022-09-08 18:58:39 +09:00
Youngteac Hong 90f379c5e7
Add PR/issue templates (#4)
This commit also includes Vim settings for .gitignore
2022-09-08 17:36:08 +09:00
Youngteac Hong 36586b29f1
Create swift.yml to introduce CI (#3) 2022-09-08 16:58:17 +09:00
원형식 e48397b9dd
Initial project setup (#2)
Project structure based on a default swift package project and yorkie-js-sdk.
- grpc-swift
- swift-protobuf
- SwiftLint
- SwiftFormat
2022-09-08 14:54:29 +09:00
Youngteac Hong a9d19aa326
Initial commit 2022-07-28 16:09:30 +09:00