Commit graph

463 commits

Author SHA1 Message Date
cfab8ee148
fix(js): default url 2024-08-27 23:09:36 +02:00
6b7324d37f
feat: added new methods to java, js and py glues 2024-08-27 23:04:56 +02:00
e1da62f0c8
feat(lua): type annotations 2024-08-27 21:24:05 +02:00
30f692e6e1
feat(lua): new session methods 2024-08-27 21:24:05 +02:00
fea7cfcbe1
feat: added session, reworked auth 2024-08-27 21:24:04 +02:00
4a701818f2 feat(js): new glue hash function 2024-08-27 16:09:44 +02:00
fc9247c5a8 chore(js): updated callback functions names 2024-08-27 16:08:25 +02:00
6ea5a72b0c feat(js): Changed callbacks method to return Controller instead of Change 2024-08-24 17:46:05 +02:00
cschen
076128e1db chore(python): added name to buffer controller, small cleanup 2024-08-23 20:41:07 +02:00
cschen
88f4ace04a Merge remote-tracking branch 'origin/dev' into dev 2024-08-22 16:55:28 +02:00
cschen
0c9ea08d64 wip(python): try_recv doesn't return a promise. 2024-08-22 16:52:29 +02:00
cschen
472c33f734 feat(python): added callback support, reaching feature parity with the lib. 2024-08-22 15:22:51 +02:00
21f1948f04
fix(java): new filetree, mistake in create_buffer 2024-08-21 23:41:22 +02:00
cschen
4004f2011f Merge branch 'pyo3_bump' into dev 2024-08-21 18:21:48 +02:00
cschen
76f8058186 chore(python): final cleanup before merge into dev 2024-08-21 18:15:19 +02:00
ed3673b92a feat: buffer get name fn 2024-08-21 17:38:33 +02:00
cschen
dc7ae20b7d fix(python): release GIL when spawning stuff, we don't need to keep it and we risk
deadlocking
feat(python): added allow_thread in the macro
2024-08-21 17:20:12 +02:00
f29ea23c4e feat: new fn for controllers 2024-08-21 17:14:19 +02:00
cschen
fe2f2a3ae0 chore(python): cleaned up the leftovers 2024-08-21 15:45:24 +02:00
cschen
c0e090fe7a Merge branch 'dev' into pyo3_bump 2024-08-21 15:05:17 +02:00
cschen
e7272753e6 Merge branch 'dev' into pyo3_bump 2024-08-21 15:03:10 +02:00
cschen
a4eb58cd4b wip(python): moving the rest of the glue to promises (empty promises) 2024-08-21 15:02:44 +02:00
a99eee170d
feat: allow filtering workspace filetree 2024-08-21 14:57:07 +02:00
cschen
4a575c587f feat(python): fixed macro and expanded to workplace methods 2024-08-20 22:18:29 +02:00
cschen
feff54bcdf feat(python): switched to a "Promise" approach
chore(python): removed, commented out some of the earlier attempts
feat(python): reworked the logger and tokio runtime approach, now the logging
callback drives the runtime.
2024-08-20 21:09:10 +02:00
cschen
72896d87d6 feat(python): tentative of Promise based approach 2024-08-20 17:16:36 +02:00
cschen
b09c7a2206 ON_HOLD: pyo3 experimental async is still too experimental, pivoting to blocking behaviour for now. 2024-08-20 11:22:45 +02:00
3b45c4ddb6
feat(java): UUID-based users, fixed event api 2024-08-19 11:36:51 +02:00
cschen
a45db74722 feat(python): use a current_thread executor 2024-08-18 19:06:07 +02:00
cschen
76e5320e6a chore(python): minor changes 2024-08-17 23:48:02 +02:00
cschen
f743fbcb03 feat: brought back the manual workspace implementation 2024-08-17 23:47:06 +02:00
cschen
07f656cbe5 feat(python): finish wrapping the new glue in the new pyo3 stuff 2024-08-17 01:13:07 +02:00
cschen
3fe6d224e3 feat(python): summon black magic to allow possible release of the GIL between .awaits
plus nice static runtime singleton fetcher/instantiator
2024-08-17 01:12:35 +02:00
cschen
5acca5ce3e feat: make the automatic User translation into py,
fix: properly create the module with the new version signature
2024-08-17 01:11:11 +02:00
cschen
f8c36be6ea feat: updated workspace manually anyway even if commented so that we have it ready just in case 2024-08-17 01:09:29 +02:00
0154e5a032
fix: try_recv() channel error : delta may be None
basically if there was no change to report, the oneshot would not get
updated which is bad. so we put back the version we got and send a None
(the channel now has nullable TextChange). so basically its always a
try_recv, but its fine since recv is implemented with try_recv + poll
anyway
2024-08-17 00:17:01 +02:00
fdcfc611b1
feat(lua): hand rolled a_sync! to the rescue 2024-08-17 00:06:57 +02:00
cschen
ef2285d0f3 Merge branch 'dev' into pyo3_bump 2024-08-16 16:50:55 +02:00
cschen
e7fa9f4a5b fix: Worker list_users_returns a Vec<User> instead of Vec<Identity>
chore: formatter going to town
2024-08-16 16:46:32 +02:00
cschen
9d5aae461f feat: added the file name changed to the workspace event (uniform non-unit variant enum) 2024-08-16 16:15:48 +02:00
cschen
610576f8b7 feat: Bumping to pyo3 0.22, removing pyo3-asyncio, moving code around to allow for
smoother pyo3 aggregation.
2024-08-16 12:58:43 +02:00
0d3af40eb0
feat(java): expose hash function, use OptionalLong in TextChange 2024-08-16 01:21:21 +02:00
8b704fa668
feat: impl so no longer needed from::
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-15 22:48:03 +02:00
79f132236f
feat(lua): impl all methods, add callback
this uses mlua beta but whatev api is so much better
2024-08-15 22:19:08 +02:00
a8ce56bcc0
feat: callback gets the controller itself as arg 2024-08-15 20:41:53 +02:00
c0d586df90
feat: Clone+Debug on api::Event 2024-08-15 20:15:37 +02:00
d3ce714070
feat: rather than +Debug, make a newtype 2024-08-15 20:15:23 +02:00
7900ca08a7
feat: added back .callback() to controller api 2024-08-15 19:32:01 +02:00
2f955ecef4
chore: pub(crate) for cursor controller too 2024-08-15 19:31:34 +02:00
cschen
e732e6a938 feat(python): adapted glue to latest changes, still todo workspace events. 2024-08-15 17:58:02 +02:00
b51e55570f
fix(lua): return error with context
maybe wasteful? but i really want this to show error strings
2024-08-15 03:45:50 +02:00
f1b8d83bac
fix: don't clone at the end of select_buffer 2024-08-15 03:42:48 +02:00
889f745dd4
feat(lua): .event(), userdata for WorkspaceEvent 2024-08-15 03:42:25 +02:00
3e37d4ffe3
fix: don't send anything if change is a noop 2024-08-14 23:53:51 +02:00
e43105b919
fix: textchange can be both delete and insert 2024-08-14 23:46:16 +02:00
a5502d1f1f
fix(java): use ext::hash() instead 2024-08-14 19:17:25 +02:00
39f69cc418
feat(java): xxh3 hash checking 2024-08-14 19:09:48 +02:00
fcd2b9f1c9
chore(java): async send 2024-08-14 18:51:34 +02:00
24f5bdf2a7
feat(lua): expose hash field in text change 2024-08-14 18:07:26 +02:00
2d20887509 chore: removed prelude imports and fixed glue exports 2024-08-14 18:00:12 +02:00
b46914528a chore: updated js glue to have async send/recv 2024-08-14 17:25:23 +02:00
8806941a13
feat(lua): expose hash fn 2024-08-14 17:16:58 +02:00
cschen
c58d1db58b fix: proper translation from dt::Operation to Textchange
Co-authored-by: alemi <me@alemi.dev>
2024-08-14 17:16:05 +02:00
97b7504098
feat: hash is a public ext 2024-08-14 17:12:36 +02:00
cschen
d22446ee10 fix: this time is the good one 2024-08-14 16:31:28 +02:00
cschen
6c30699acc Revert "(to alemi: always has been) fix: try now lmao."
This reverts commit 1b5b9e74bf.
2024-08-14 16:15:42 +02:00
cschen
1b5b9e74bf (to alemi: always has been) fix: try now lmao. 2024-08-14 16:07:19 +02:00
2916848165
fix(lua): its all async now 2024-08-14 15:56:36 +02:00
4bed9d7432
fix: cursor controller backpressure
Co-authored-by: cschen <cschen@codemp.dev>
2024-08-14 15:56:10 +02:00
413247f9b4
fix: update local version on send
also keep a branch on which we merge editor's changes, which kind of
solves our race condition thing

Co-authored-by: cschen <cschen@codemp.dev>
2024-08-14 15:55:18 +02:00
3346f1c526
feat: Controller::send is now async
needed because we want this to be acked, no longer a "fire and forget"
action

Co-authored-by: cschen <cschen@codemp.dev>
2024-08-14 15:55:06 +02:00
cschen
ef9da1740a chore: explaining an extra thing 2024-08-14 13:34:01 +02:00
cschen
4d65b2db7d fix: error in the worker that merged more operations than needed. 2024-08-14 13:32:18 +02:00
bd6423856b
chore(java): try_recv async 2024-08-14 00:27:26 +02:00
a9d713fd75
feat: async try_recv, delta_request
Co-authored-by: alemi <me@alemi.dev>
2024-08-14 00:24:32 +02:00
ada6ed49c1
fix(java): async content(), moved select_buffer 2024-08-13 21:58:40 +02:00
ab9c6530cd
fix: better try_recv mutex logic for cursor ctrl 2024-08-13 18:05:46 +02:00
2a016a6619
fix: add .content() back
except now its async and can fail and basically requests the worker to
generate the content for us on demand

Co-authored-by: zaaarf <me@zaaarf.foo>
Co-authored-by: cschen <cschen@codemp.dev>
2024-08-13 18:03:20 +02:00
8874f31eeb
fix: add from error for oneshot channel
this is getting a bit overused...

Co-authored-by: zaaarf <me@zaaarf.foo>
Co-authored-by: cschen <cschen@codemp.dev>
2024-08-13 18:00:17 +02:00
cschen
9acb7b6007 wip: Some attempts at getting DT to work with buffer controller and buffer worker!
This attempt doesn't use a ref to the crdt! But uses an extra channel!
2024-08-13 00:36:09 +02:00
781a130c62
chore: moved tools into ext 2024-08-10 16:13:16 +02:00
9c6036da56
chore: export CodempEvent 2024-08-10 16:12:28 +02:00
6bf541028d
feat(java): replace all expect/unwrap with throwing JNIException 2024-08-10 02:45:20 +02:00
53503ae117
feat(java): glue for workspace events 2024-08-09 14:11:13 +02:00
cschen
264dd319d3 fix(python): fixed the type hints, adapted glue to latest workspace, uniformed names in the glue
chore: forgot a file
2024-08-09 09:14:35 +02:00
29ffba3309
chore: remove unused deps and imports 2024-08-09 00:49:31 +02:00
61be0009ba
fix: removed InternallyMutable::wait
its broken in weird ways, just dont use it that way
2024-08-09 00:40:46 +02:00
a8b4eab445
feat: api struct for event
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-09 00:40:33 +02:00
07dd964466
fix: improved workspace events channel
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-09 00:39:58 +02:00
cschen
ad881ab067 chore(python): remove old monolithic ffi 2024-08-09 00:01:56 +02:00
cschen
99cbebb4f8 fix(python): stragglers files 2024-08-09 00:00:21 +02:00
cschen
7e8a46f9b8 feat(python): new leaner glue, up to date 2024-08-08 23:58:45 +02:00
754b88fd73 feat: javascript glue
Co-authored-by: alemi.dev <me@alemi.dev>
2024-08-08 23:25:02 +02:00
f699d2e8fe
feat: jank workspace event poll/get 2024-08-08 22:01:08 +02:00
f2be80427a
chore: move stuff around
im not sure about getters on Services, nor names, but ehh
2024-08-08 21:58:20 +02:00
f6edc2cbb0
feat(lua): add runtime driver stop control 2024-08-08 21:56:36 +02:00
0ca5165b73
feat: improve InternallyMutable 2024-08-08 21:55:52 +02:00
f14a8c40a5
feat: add codemp user to api
super stub but whatev
2024-08-08 21:55:43 +02:00
0aa7690533
feat: lua leave, detach, delete 2024-08-08 04:42:11 +02:00
e736646b8c
feat: add close_client helper in lua 2024-08-08 04:14:24 +02:00
898ab22e22
feat: add fn to get all workspace names 2024-08-08 04:14:13 +02:00
793cebb787
feat: add static client store for lua
so we can access clients across lua threads
2024-08-08 04:02:56 +02:00
775cde1d7f
feat: CodempClient is also an inner Arc<> 2024-08-08 03:59:28 +02:00
e1ba683fd0
fix: updated lua ffi
now the client is given to lua
2024-08-08 02:48:31 +02:00
a9bab2bb03
feat: java glue leave_workspace, detach, new connect 2024-08-08 02:45:52 +02:00
893c3d31e0
feat: better auth: multiworkspace, proper flow
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 02:30:34 +02:00
59d8a4640d
fix: proper lifetime for cursor, renamed methods
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 02:29:45 +02:00
515cab331c
chore: cleanup, reorganizing java glue 2024-08-08 00:29:54 +02:00
487422eb99
feat: added detach buffer and leave workspace
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:28:35 +02:00
6e9727128d
feat: controllers now implement stop
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:28:15 +02:00
cd8f7cd5c5
feat: internally mutable
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:27:24 +02:00
4de09cb164
chore: de-arced a bit
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:25:22 +02:00
ffa8d8ea82 Updated Javascript Glue with Napi
Co-authored-by: alemi.dev <me@alemi.dev>
2024-08-07 23:06:33 +02:00
e4b6e82485
docs: fix pic 2024-08-07 17:34:46 +02:00
6212718e99
feat: recv, buffer_list, tweaks, gradle 2024-08-07 10:22:01 +02:00
84996489e1
feat: working glue
Co-authored-by: alemi <me@alemi.dev>
2024-08-07 02:43:25 +02:00
4bb35f1727
feat: buffer controller, cleanup 2024-08-07 01:44:27 +02:00
329287df53
feat: more work on java ffi glue
easy when you todo() the hard vec<string>
2024-08-07 01:34:13 +02:00
490670b8bc
feat: try_recv CursorController
Co-authored-by: alemi <me@alemi.dev>
2024-08-07 00:38:45 +02:00
7d90793467
feat: get_buffer, get_cursor, get_workspace_id 2024-08-07 00:00:24 +02:00
72e86a8079
fix: lua use try_init for logging 2024-08-06 23:56:28 +02:00
13f862a0e8
chore: some glue code for jni
made the simple ones :p
2024-08-06 23:55:57 +02:00
e2ae53b35f
feat: initial work on jni-rs java glue 2024-08-06 23:30:16 +02:00
cschen
df95b20728 Merge remote-tracking branch 'origin/glue' into glue 2024-08-06 23:28:39 +02:00
cschen
bdbd94879b feat: added maturin wheel building config as completely separate "project",
feat: added stubs for python glue, bundled in the wheel,
feat: the python glue now uses less stupid names.
2024-08-06 23:28:09 +02:00
2cc23f2ec2
feat: lua logger improvements
distinct fn for setup and get, setup is idempotent
2024-08-06 23:02:28 +02:00
cd9a2d6247
fix: lib name is codemp_lua, override addr via env
use CODEMP_SERVER_ADDRESS
2024-08-06 23:01:44 +02:00
05a4c88967
fix: controller with 1 generic 2024-08-06 23:00:45 +02:00
e85833a40f
chore: migrate errors to thiserror 2024-08-06 23:00:04 +02:00
95ece68ae6
fix: removed filler error 2024-08-06 00:16:52 +02:00
Camillo Schenone
f9784e961d feat: updated to new glue, magic.
fix: added sublime junk to gitignore
2024-08-05 22:44:46 +02:00
b75caaf959
fix: lua glue uses structs directly 2024-08-05 19:16:17 +02:00
39533ae086
feat: wrappers for Cursor and Op
so plugins dont need to interact directly with our underlying proto
struct, nor our underlying crdt ops. also for wrapping directly in glue
2024-08-05 19:15:30 +02:00
84c77eaca3
feat: inner Arc<T> on controllers
so we can wrap them directly in our glue
2024-08-05 19:14:35 +02:00
Camillo Schenone
25e56f9894 fix: python glue works (only tested on mac though) 2024-03-16 15:42:36 +01:00
Camillo Schenone
859baf6572 fix: whops forgot the actual python glue xD version bump 2024-03-16 15:38:09 +01:00
Camillo Schenone
13a4163d1e feat: added python glue, still needs some tweaking in the building of the dylib 2024-03-16 14:36:41 +01:00
f0003f04bd chore: leftover lua lib.rs 2024-03-10 13:13:11 +01:00
c748f49941 feat:added js glue 2024-03-10 12:42:56 +01:00
830ef1fa9b fix: made lua glue work
Co-authored-by: alemi <me@alemi.dev>
2024-03-10 02:18:54 +01:00
074c88feee feat: added lua ffi bindings
broken because no proper build target but whatev for now ig
2024-03-10 01:39:08 +01:00
73fc3005c4 chore: renamed glue module 2024-03-10 01:36:50 +01:00
23db5af4d2 feat: java glue (kind of) 2024-03-09 23:27:08 +01:00
6fe5372387 chore: removed dead code 2024-03-09 22:07:40 +01:00
a38c28f401 feat: moved out proto + feature flag cleanup
Co-authored-by: alemi <me@alemi.dev>
2024-03-09 19:59:36 +01:00
4694a01c9b fix: don't borrow self as mut to join workspace 2024-03-09 17:20:40 +01:00
9422f9a216 docs: updated docs 2024-02-09 01:16:16 +01:00
a622ac773c docs: updated main doc page examples 2024-02-09 01:04:24 +01:00
4fdd2a79c4 fix: api doesn't really require woot or similar 2024-02-09 01:04:10 +01:00
f706237828 chore: removed blocking_recv
just block_on(recv()) ...
2024-02-09 01:03:38 +01:00