Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: rename #259

Merged
merged 1 commit into from
Jan 16, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
chore: rename
KKould committed Jan 16, 2025
commit fac2f19cb4271a86662a392ba8a448ea3aeb1dce
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -23,10 +23,10 @@ Cargo.lock
/hello_world
/transaction

fncksql_data
fncksql_bench
kitesql_data
kitesql_bench
sqlite_bench
fnck_sql_tpcc
kite_sql_tpcc
copy.csv

tests/data/row_20000.csv
14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[package]
name = "fnck_sql"
version = "0.0.10"
name = "kite_sql"
version = "0.1.0"
edition = "2021"
authors = ["Kould <kould2333@gmail.com>", "Xwg <loloxwg@gmail.com>"]
description = "SQL as a Function for Rust"
documentation = "https://docs.rs/fnck_sql/latest/fnck_sql/"
documentation = "https://docs.rs/kite_sql/latest/kite_sql/"
license = "Apache-2.0"
repository = "https://github.com/KipData/KipSQL"
readme = "README.md"
keywords = ["sql", "sqlite", "database", "mysql"]
categories = ["development-tools", "database"]
default-run = "fnck_sql"
default-run = "kite_sql"

[[bin]]
name = "fnck_sql"
name = "kite_sql"
path = "src/bin/server.rs"
required-features = ["net"]

@@ -51,7 +51,7 @@ regex = { version = "1" }
rocksdb = { version = "0.22" }
rust_decimal = { version = "1" }
serde = { version = "1", features = ["derive", "rc"] }
fnck_sql_serde_macros = { version = "0.1.0", path = "fnck_sql_serde_macros" }
kite_sql_serde_macros = { version = "0.1.0", path = "kite_sql_serde_macros" }
siphasher = { version = "1", features = ["serde"] }
sqlparser = { version = "0.34", features = ["serde"] }
thiserror = { version = "1" }
@@ -82,7 +82,7 @@ pprof = { version = "0.13", features = ["flamegraph", "criterion"] }
members = [
"tests/sqllogictest",
"tests/macros-test",
"fnck_sql_serde_macros",
"kite_sql_serde_macros",
"tpcc"]

[profile.release]
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -15,12 +15,12 @@ RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib n
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y postgresql-client

ARG APP_SERVER=fnck_sql
ARG APP_SERVER=kite_sql

WORKDIR /fnck_sql
WORKDIR /kite_sql

EXPOSE 5432

COPY --from=builder /builder/target/release/${APP_SERVER} ${APP_SERVER}

ENTRYPOINT ["./fnck_sql", "--ip", "0.0.0.0"]
ENTRYPOINT ["./kite_sql", "--ip", "0.0.0.0"]
52 changes: 23 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,32 @@
<pre align="center">
Built by @KipData


███████╗███╗ ██╗ ██████╗██╗ ██╗ ███████╗ ██████╗ ██╗
██╔════╝████╗ ██║██╔════╝██║ ██╔╝ ██╔════╝██╔═══██╗██║
█████╗ ██╔██╗ ██║██║ █████╔╝ ███████╗██║ ██║██║
██╔══╝ ██║╚██╗██║██║ ██╔═██╗ ╚════██║██║▄▄ ██║██║
██║ ██║ ╚████║╚██████╗██║ ██╗ ███████║╚██████╔╝███████╗
╚═╝ ╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝ ╚══════╝ ╚══▀▀═╝ ╚══════╝
<p align="center">
<picture>
<source srcset="./static/images/kite_sql_dark.png" media="(prefers-color-scheme: dark)">
<source srcset="./static/images/kite_sql_light.png" media="(prefers-color-scheme: light)">
<img src="./static/images/kite_sql_light.png" alt="KiteSQL Logo" width="400px">
</picture>
</p>

-----------------------------------
🖕
</pre>
<h3 align="center">
SQL as a Function for Rust
</h3>

<p align="center">
<a href="https://summer-ospp.ac.cn/org/orgdetail/0b09d23d-2510-4537-aa9d-45158bb6bdc2"><img src="https://img.shields.io/badge/OSPP-KipData-3DA639?logo=opensourceinitiative"></a>
<a href="https://github.com/KipData/FnckSQL/blob/main/LICENSE"><img src="https://img.shields.io/github/license/KipData/FnckSQL"></a>
<a href="https://github.com/KipData/KiteSQL/blob/main/LICENSE"><img src="https://img.shields.io/github/license/KipData/KiteSQL"></a>
&nbsp;
<a href="https://www.rust-lang.org/community"><img src="https://img.shields.io/badge/Rust_Community%20-Join_us-brightgreen?style=plastic&logo=rust"></a>
</p>
<p align="center">
<a href="https://github.com/KipData/FnckSQL/actions/workflows/ci.yml"><img src="https://github.com/KipData/FnckSQL/actions/workflows/ci.yml/badge.svg" alt="CI"></img></a>
<a href="https://crates.io/crates/fnck_sql/"><img src="https://img.shields.io/crates/v/fnck_sql.svg"></a>
<a href="https://github.com/KipData/FnckSQL" target="_blank">
<img src="https://img.shields.io/github/stars/KipData/FnckSQL.svg?style=social" alt="github star"/>
<img src="https://img.shields.io/github/forks/KipData/FnckSQL.svg?style=social" alt="github fork"/>
<a href="https://github.com/KipData/KiteSQL/actions/workflows/ci.yml"><img src="https://github.com/KipData/KiteSQL/actions/workflows/ci.yml/badge.svg" alt="CI"></img></a>
<a href="https://crates.io/crates/kite_sql/"><img src="https://img.shields.io/crates/v/kite_sql.svg"></a>
<a href="https://github.com/KipData/KiteSQL" target="_blank">
<img src="https://img.shields.io/github/stars/KipData/KiteSQL.svg?style=social" alt="github star"/>
<img src="https://img.shields.io/github/forks/KipData/KiteSQL.svg?style=social" alt="github fork"/>
</a>
</p>

## Introduction
**FnckSQL** is a lightweight embedded database inspired by **MyRocks** and **SQLite** and completely coded in Rust. It aims to provide a more user-friendly, lightweight, and low-loss RDBMS for Rust programming so that the APP does not rely on other complex components. can perform complex relational data operations
**KiteSQL** is a lightweight embedded database inspired by **MyRocks** and **SQLite** and completely coded in Rust. It aims to provide a more user-friendly, lightweight, and low-loss RDBMS for Rust programming so that the APP does not rely on other complex components. can perform complex relational data operations

## Key Features
- A lightweight embedded SQL database fully rewritten in Rust
@@ -46,16 +40,16 @@ Built by @KipData
## Examples

```rust
let fnck_sql = DataBaseBuilder::path("./data").build()?;
let kite_sql = DataBaseBuilder::path("./data").build()?;

fnck_sql
kite_sql
.run("create table if not exists t1 (c1 int primary key, c2 int)")?
.done()?;
fnck_sql
kite_sql
.run("insert into t1 values(0, 0), (1, 1)")?
.done()?;

for tuple in fnck_sql.run("select * from t1")? {
for tuple in kite_sql.run("select * from t1")? {
println!("{:?}", tuple?);
}
```
@@ -84,15 +78,15 @@ Order-Status : 0.053 (0.175)
#### 👉[check more](tpcc/README.md)

## Roadmap
- Get [SQL 2016](https://github.com/KipData/FnckSQL/issues/130) mostly supported
- LLVM JIT: [Perf: TPCC](https://github.com/KipData/FnckSQL/issues/247)
- Get [SQL 2016](https://github.com/KipData/KiteSQL/issues/130) mostly supported
- LLVM JIT: [Perf: TPCC](https://github.com/KipData/KiteSQL/issues/247)

## License

FnckSQL uses the [Apache 2.0 license][1] to strike a balance between
KiteSQL uses the [Apache 2.0 license][1] to strike a balance between
open contributions and allowing you to use the software however you want.

[1]: <https://github.com/KipData/FnckSQL/blob/main/LICENSE>
[1]: <https://github.com/KipData/KiteSQL/blob/main/LICENSE>

## Contributors
[![](https://opencollective.com/fncksql/contributors.svg?width=890&button=false)](https://github.com/KipData/FnckSQL/graphs/contributors)
[![](https://opencollective.com/kitesql/contributors.svg?width=890&button=false)](https://github.com/KipData/KiteSQL/graphs/contributors)
20 changes: 10 additions & 10 deletions benchmarks/query_benchmark.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
use criterion::{criterion_group, criterion_main, Criterion};
use fnck_sql::db::{DataBaseBuilder, ResultIter};
use fnck_sql::errors::DatabaseError;
use indicatif::{ProgressBar, ProgressStyle};
use itertools::Itertools;
use kite_sql::db::{DataBaseBuilder, ResultIter};
use kite_sql::errors::DatabaseError;
#[cfg(unix)]
use pprof::criterion::{Output, PProfProfiler};
use sqlite::Error;
use std::fs;
use std::path::Path;

const QUERY_BENCH_FNCK_SQL_PATH: &'static str = "./fncksql_bench";
const QUERY_BENCH_kite_sql_PATH: &'static str = "./kitesql_bench";
const QUERY_BENCH_SQLITE_PATH: &'static str = "./sqlite_bench";
const TABLE_ROW_NUM: u64 = 200_000;

@@ -24,8 +24,8 @@ fn query_cases() -> Vec<(&'static str, &'static str)> {
]
}

fn init_fncksql_query_bench() -> Result<(), DatabaseError> {
let database = DataBaseBuilder::path(QUERY_BENCH_FNCK_SQL_PATH).build()?;
fn init_kitesql_query_bench() -> Result<(), DatabaseError> {
let database = DataBaseBuilder::path(QUERY_BENCH_kite_sql_PATH).build()?;
database
.run("create table t1 (c1 int primary key, c2 int)")?
.done()?;
@@ -84,21 +84,21 @@ fn query_on_execute(c: &mut Criterion) {

init_sqlite_query_bench().unwrap();
}
if !path_exists_and_is_directory(QUERY_BENCH_FNCK_SQL_PATH) {
if !path_exists_and_is_directory(QUERY_BENCH_kite_sql_PATH) {
println!(
"FnckSQL: The table is not initialized and data insertion is started. => {}",
"KiteSQL: The table is not initialized and data insertion is started. => {}",
TABLE_ROW_NUM
);

init_fncksql_query_bench().unwrap();
init_kitesql_query_bench().unwrap();
}
let database = DataBaseBuilder::path(QUERY_BENCH_FNCK_SQL_PATH)
let database = DataBaseBuilder::path(QUERY_BENCH_kite_sql_PATH)
.build()
.unwrap();
println!("Table initialization completed");

for (name, case) in query_cases() {
c.bench_function(format!("FnckSQL: {} by '{}'", name, case).as_str(), |b| {
c.bench_function(format!("KiteSQL: {} by '{}'", name, case).as_str(), |b| {
b.iter(|| {
for tuple in database.run(case).unwrap() {
let _ = tuple.unwrap();
4 changes: 2 additions & 2 deletions docs/features.md
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ scala_function!(TestFunction::test(LogicalType::Integer, LogicalType::Integer) -
Ok(plus_unary_evaluator.unary_eval(&value))
});

let fnck_sql = DataBaseBuilder::path("./data")
let kite_sql = DataBaseBuilder::path("./data")
.register_scala_function(TestFunction::new())
.build()?;
```
@@ -57,7 +57,7 @@ table_function!(MyTableFunction::test_numbers(LogicalType::Integer) -> [c1: Logi
]
}))) as Box<dyn Iterator<Item = Result<Tuple, DatabaseError>>>)
}));
let fnck_sql = DataBaseBuilder::path("./data")
let kite_sql = DataBaseBuilder::path("./data")
.register_table_function(MyTableFunction::new())
.build()?;
```
8 changes: 4 additions & 4 deletions examples/hello_world.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use fnck_sql::db::{DataBaseBuilder, ResultIter};
use fnck_sql::errors::DatabaseError;
use fnck_sql::implement_from_tuple;
use fnck_sql::types::value::DataValue;
use kite_sql::db::{DataBaseBuilder, ResultIter};
use kite_sql::errors::DatabaseError;
use kite_sql::implement_from_tuple;
use kite_sql::types::value::DataValue;

#[derive(Default, Debug, PartialEq)]
struct MyStruct {
4 changes: 2 additions & 2 deletions examples/transaction.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use fnck_sql::db::{DataBaseBuilder, ResultIter};
use fnck_sql::errors::DatabaseError;
use kite_sql::db::{DataBaseBuilder, ResultIter};
use kite_sql::errors::DatabaseError;

fn main() -> Result<(), DatabaseError> {
let database = DataBaseBuilder::path("./transaction").build()?;
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[package]
name = "fnck_sql_serde_macros"
name = "kite_sql_serde_macros"
version = "0.1.0"
edition = "2021"
description = "SerdeMacros for FnckSQL"
description = "SerdeMacros for KiteSQL"
license = "Apache-2.0"

[dependencies]
File renamed without changes.
53 changes: 21 additions & 32 deletions src/bin/server.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use async_trait::async_trait;
use clap::Parser;
use fnck_sql::db::{DBTransaction, DataBaseBuilder, Database, ResultIter};
use fnck_sql::errors::DatabaseError;
use fnck_sql::storage::rocksdb::RocksStorage;
use fnck_sql::types::tuple::{Schema, SchemaRef, Tuple};
use fnck_sql::types::LogicalType;
use futures::stream;
use kite_sql::db::{DBTransaction, DataBaseBuilder, Database, ResultIter};
use kite_sql::errors::DatabaseError;
use kite_sql::storage::rocksdb::RocksStorage;
use kite_sql::types::tuple::{Schema, SchemaRef, Tuple};
use kite_sql::types::LogicalType;
use log::{error, info, LevelFilter};
use parking_lot::Mutex;
use pgwire::api::auth::noop::NoopStartupHandler;
@@ -25,35 +25,24 @@ use std::sync::Arc;
use tokio::net::TcpListener;

pub(crate) const BANNER: &str = "
███████╗███╗ ██╗ ██████╗██╗ ██╗ ███████╗ ██████╗ ██╗
██╔════╝████╗ ██║██╔════╝██║ ██╔╝ ██╔════╝██╔═══██╗██║
█████╗ ██╔██╗ ██║██║ █████╔╝ ███████╗██║ ██║██║
██╔══╝ ██║╚██╗██║██║ ██╔═██╗ ╚════██║██║▄▄ ██║██║
██║ ██║ ╚████║╚██████╗██║ ██╗ ███████║╚██████╔╝███████╗
╚═╝ ╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝ ╚══════╝ ╚══▀▀═╝ ╚══════╝
oooo oooo o8o . .oooooo..o .oooooo. ooooo
`888 .8P' `\"' .o8 d8P' `Y8 d8P' `Y8b `888'
888 d8' oooo .o888oo .ooooo. Y88bo. 888 888 888
88888[ `888 888 d88' `88b `\"Y8888o. 888 888 888
888`88b. 888 888 888ooo888 `\"Y88b 888 888 888
888 `88b. 888 888 . 888 .o oo .d8P `88b d88b 888 o
o888o o888o o888o \"888\" `Y8bod8P' 8\"\"88888P' `Y8bood8P'Ybd' o888ooooood8

";

pub const BLOOM: &str = "
_ ._ _ , _ ._
(_ ' ( ` )_ .__)
( ( ( ) `) ) _)
- --=(;;(----(-----)-----);;)==-- -
(__ (_ (_ . _) _) ,__)
`~~`\\ ' . /`~~`
; ;
/ \\
_____________/_ __ \\_____________
";

#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
#[clap(long, default_value = "127.0.0.1")]
ip: String,
#[clap(long, default_value = "5432")]
port: u16,
#[clap(long, default_value = "./fncksql_data")]
#[clap(long, default_value = "./kitesql_data")]
path: String,
}

@@ -76,15 +65,15 @@ impl DerefMut for TransactionPtr {
unsafe impl Send for TransactionPtr {}
unsafe impl Sync for TransactionPtr {}

pub struct FnckSQLBackend {
pub struct KiteSQLBackend {
inner: Arc<Database<RocksStorage>>,
}

impl FnckSQLBackend {
pub fn new(path: impl Into<PathBuf> + Send) -> Result<FnckSQLBackend, DatabaseError> {
impl KiteSQLBackend {
pub fn new(path: impl Into<PathBuf> + Send) -> Result<KiteSQLBackend, DatabaseError> {
let database = DataBaseBuilder::path(path).build()?;

Ok(FnckSQLBackend {
Ok(KiteSQLBackend {
inner: Arc::new(database),
})
}
@@ -350,15 +339,15 @@ async fn main() {

let args = Args::parse();
info!("{} \nVersion: {}\n", BANNER, env!("CARGO_PKG_VERSION"));
info!(":) Welcome to the FnckSQL🖕");
info!(":) Welcome to the KiteSQL🪁");
info!("Listen on port {}", args.port);
info!("Tips🔞: ");
info!("Tips: ");
info!(
"1. all data is in the \'{}\' folder in the directory where the application is run",
args.path
);

let backend = FnckSQLBackend::new(args.path).unwrap();
let backend = KiteSQLBackend::new(args.path).unwrap();
let factory = Arc::new(CustomBackendFactory::new(Arc::new(SessionBackend::new(
backend.inner,
))));
@@ -371,7 +360,7 @@ async fn main() {
error!("[Listener][Failed To Accept]: {}", err);
}
}
_ = quit() => info!("{BLOOM}")
_ = quit() => info!("Bye!")
}
}

2 changes: 1 addition & 1 deletion src/binder/copy.rs
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ use crate::planner::operator::copy_to_file::CopyToFileOperator;
use crate::planner::operator::table_scan::TableScanOperator;
use crate::planner::operator::Operator;
use crate::planner::Childrens;
use fnck_sql_serde_macros::ReferenceSerialization;
use kite_sql_serde_macros::ReferenceSerialization;
use serde::{Deserialize, Serialize};
use sqlparser::ast::{CopyOption, CopySource, CopyTarget};

Loading