Commit Graph

67 Commits

Author SHA1 Message Date
Pekka Enberg
c983888d33 Revert "Merge 'build: Update cargo-dist to latest' from Pekka Enberg"
This reverts commit 248a369afc, reversing
changes made to e464f99234. This is an
attempt to fix release process.
2025-02-18 19:06:36 +02:00
Pekka Enberg
6bd7d6752e Limbo 0.0.15 2025-02-18 18:51:39 +02:00
Pekka Enberg
d9f4558255 build: Clean up top-level Cargo.toml 2025-02-14 12:43:17 +02:00
Pekka Enberg
43574528c9 Merge 'Switch to workspace dependencies' from Pekka Enberg
...makes it easier to specify a version, which is needed for `cargo
publish`.

Closes #991
2025-02-14 12:21:24 +02:00
Pekka Enberg
d63be7492d build: Update cargo-dist to latest 2025-02-12 17:30:02 +02:00
Pekka Enberg
ac54c35f92 Switch to workspace dependencies
...makes it easier to specify a version, which is needed for `cargo publish`.
2025-02-12 17:28:04 +02:00
Pekka Enberg
0b83e98031 bindings/rust: Make "limbo_core" workspace dependency 2025-02-12 16:53:41 +02:00
Jussi Saurio
f5f77c0bd1 Initial virtual table implementation 2025-02-06 07:51:50 -05:00
Pekka Enberg
238fb9c977 Merge 'Sqlean Crypto extension' from Diego Reis
Introduces a new `crypto` extension, compatible with the Sqlean [crypto
extension](https://github.com/nalgeon/sqlean/blob/main/docs/crypto.md).

Closes #903
2025-02-06 13:46:01 +02:00
Diego Reis
dd58be3b60 Add basic structure for crypto extension 2025-02-05 23:09:26 -03:00
krishvishal
a3d0e1e974 Remove vector extension from different Cargo.toml files and add quickcheck, quickcheck_macros
and `rand` crates to core's Cargo.toml file
2025-02-06 06:58:41 +05:30
Pekka Enberg
733f7de688 Merge branch 'main' into feature/time-ext 2025-02-04 18:27:14 +02:00
Pekka Enberg
73a345aa4d Limbo 0.0.14 2025-02-04 15:13:18 +02:00
pedrocarlo
643ad147c0 checkpoint: implemented time_now, time_fmt_iso, time_date 2025-01-30 01:26:47 -03:00
Pekka Enberg
9462426685 Vector extension functions
This patch adds some libSQL vector extension functions such as
`vector()` and `vector_distance_cos()`, which can be used for exact
nearest neighbor search as follows:

```
limbo> SELECT embedding, vector_distance_cos(embedding, '[9, 9, 9]')
   ...> FROM movies ORDER BY vector_distance_cos(embedding, '[9, 9, 9]');
[4, 5, 6]|0.013072490692138672
[1, 2, 3]|0.07417994737625122
```
2025-01-28 14:24:09 +02:00
Pekka Enberg
17e7e03423 Revert "cargo: Disable LTO.."
This reverts commit 4943217045 to get 5%
of performance back.

Before:

```
limbo/Execute prepared statement: 'SELECT 1'
                        time:   [111.45 ns 111.52 ns 111.61 ns]
                        thrpt:  [8.9594 Melem/s 8.9667 Melem/s 8.9727 Melem/s]
Found 8 outliers among 100 measurements (8.00%)
  2 (2.00%) low mild
  2 (2.00%) high mild
  4 (4.00%) high severe
```

```
limbo/Execute prepared statement: 'SELECT 1'
                        time:   [106.22 ns 106.48 ns 106.85 ns]
                        thrpt:  [9.3587 Melem/s 9.3911 Melem/s 9.4142 Melem/s]
                 change:
                        time:   [-4.8335% -4.6750% -4.5222%] (p = 0.00 < 0.05)
                        thrpt:  [+4.7364% +4.9043% +5.0790%]
                        Performance has improved.
```
2025-01-26 10:31:35 +02:00
PThorpe92
4be1f9c3cc Begin work on Go bindings (purego) 2025-01-25 11:37:12 -05:00
sonhmai
a090fb927a centralize Rust integration and regression tests 2025-01-21 15:41:09 +07:00
Pekka Enberg
0abb917604 Limbo 0.0.13 2025-01-19 13:30:56 +02:00
PThorpe92
fc82461eff Complete percentile extension, enable col+delimeter args 2025-01-17 21:15:09 -05:00
PThorpe92
5dfc3b8787 Create simple extension for testing aggregate functions, add tests 2025-01-17 14:30:12 -05:00
PThorpe92
a1b1c01e9a Alter existing extensions to match new API 2025-01-17 14:13:57 -05:00
PThorpe92
0c737d88f7 Support aggregate functions in Extensions 2025-01-17 14:13:57 -05:00
Pekka Enberg
02d410eb79 Merge 'Add regexp extension' from Vrishabh
Implements some of the regexp functions as an extension from
[sqlean](https://github.com/nalgeon/sqlean/blob/main/docs/regexp.md)

Reviewed-by: Preston Thorpe (@PThorpe92)

Closes #717
2025-01-17 19:49:22 +02:00
Pekka Enberg
21c5fe2909 cargo: Switch to "line-tables-only" debug symbols
...reduces size of `liblimbo_sqlite3.a` to 15 MB.

Suggested by @psvri
2025-01-17 11:52:17 +02:00
Pekka Enberg
4943217045 cargo: Disable LTO..
..to reduce `liblimbo_sqlite3.a` size from 37M to 20M. As it turns out,
LLVM emits its bitcode into static libraries when LTO is enabled to be
"more aggressive" in optimizations

Refs #714
2025-01-17 11:52:17 +02:00
psvri
e43271f53b Implement regexp extension 2025-01-16 23:15:59 +05:30
Pekka Enberg
f83b34287e Move limbo_extension crate to extensions/core 2025-01-16 14:39:12 +02:00
PThorpe92
3412a3d4c2 Rough design for extension api/draft extension 2025-01-14 07:20:48 -05:00
PThorpe92
0a10d893d9 Sketch out runtime extension loading 2025-01-14 07:18:07 -05:00
Pekka Enberg
b6ae8990e3 Limbo 0.0.12 2025-01-14 11:39:17 +02:00
Pekka Enberg
af020c27d6 Initial take on Rust bindings
This implements libSQL compatible Rust API on top of Limbo's core. The
purpose of this is to allow libraries and apps that build on libSQL to
use Limbo.
2025-01-14 09:16:46 +02:00
sonhmai
d5eb41a0e5 chore: update repository link in Cargo.toml 2025-01-11 15:30:54 +07:00
김선우
370e1ca5c2 Add support Java bindings
This add support for Java bindings in the bindings/java directory.
2025-01-05 10:28:05 +02:00
Pekka Enberg
c4b0eb398c Limbo 0.0.11 2024-12-31 10:43:24 +02:00
vignesh-j-shetty
a43a1d204c renamed macro crate 2024-12-21 13:19:04 +05:30
vignesh-j-shetty
1e72fee343 Implemented proc_macro_derive extract description from rust docs and generate get_description function 2024-12-21 12:23:04 +05:30
Pekka Enberg
69e3dd28f7 Limbo 0.0.10 2024-12-18 20:45:55 +02:00
Pere Diaz Bou
1a663a6ed7 cargo stuff rm 2024-12-13 13:09:13 +01:00
Pekka Enberg
3023d228c7 Limbo 0.0.9 2024-12-12 18:49:05 +02:00
Pekka Enberg
e1b2d043be Limbo 0.0.8 2024-11-20 19:16:11 +02:00
Pekka Enberg
81b68b7047 Limbo 0.0.7 2024-11-20 18:15:36 +02:00
Pekka Enberg
0fb1e59c9a Limbo 0.0.6 2024-11-18 19:16:15 +02:00
Pekka Enberg
a83e62f6f4 Limbo 0.0.5 2024-11-18 14:57:00 +02:00
Pekka Enberg
8afad9f79b core: Reduce library text size some more
Apply some more tricks from to reduce text size by 1 MB:

https://github.com/johnthagen/min-sized-rust

Before:

  penberg@vonneumann sqlite3 % ls -lh ../target/release/liblimbo_sqlite3.a
  -rw-r--r--  1 penberg  staff   6,7M 16 Mar 09:52 ../target/release/liblimbo_sqlite3.a

After:

  penberg@vonneumann sqlite3 % ls -lh ../target/release/liblimbo_sqlite3.a
  -rw-r--r--  1 penberg  staff   5,6M 16 Mar 09:50 ../target/release/liblimbo_sqlite3.a
2024-11-16 09:53:24 +02:00
Pekka Enberg
c3da75d260 build: Enable LTO for release builds
This reduces `liblimbo_sqlite3.a` binary size from 25 MB to 10 MB:

Before:

  $ -lh ../target/release/liblimbo_sqlite3.a
  -rw-r--r--  1 penberg  staff    25M 15 Mar 18:36 ../target/release/liblimbo_sqlite3.a

After:

  $ penberg@vonneumann sqlite3 % ls -lh ../target/release/liblimbo_sqlite3.a
  -rw-r--r--  1 penberg  staff   9,9M 15 Mar 18:59 ../target/release/liblimbo_sqlite3.a
2024-11-15 19:06:17 +02:00
Pere Diaz Bou
acd0298ce9 rename core tester in cargo.toml 2024-09-13 07:56:21 +02:00
Pere Diaz Bou
1ea496a169 core_tester: sequential btree write test
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-09-05 20:50:30 +02:00
Pekka Enberg
d11dd9d06c cargo dist: Disable static library installation
Looks to be broke on Windows:

https://github.com/axodotdev/cargo-dist/issues/1356
2024-08-22 18:06:36 +03:00
Pekka Enberg
b1f508db87 Limbo 0.0.4 2024-08-22 17:44:28 +03:00