nostrdb: move everything to src
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
committed by
Daniel D’Aquino
parent
1fb88a912a
commit
1ffbd80c67
@@ -1,8 +1,8 @@
|
|||||||
CFLAGS = -Wall -Wno-misleading-indentation -Wno-unused-function -Werror -O2 -g -Ideps/secp256k1/include -Ideps/lmdb -Ideps/flatcc/include
|
CFLAGS = -Wall -Wno-misleading-indentation -Wno-unused-function -Werror -O2 -g -Ideps/secp256k1/include -Ideps/lmdb -Ideps/flatcc/include
|
||||||
HEADERS = sha256.h nostrdb.h cursor.h hex.h jsmn.h config.h sha256.h random.h memchr.h cpu.h $(C_BINDINGS)
|
HEADERS = src/sha256.h src/nostrdb.h src/cursor.h src/hex.h src/jsmn.h src/config.h src/sha256.h src/random.h src/memchr.h src/cpu.h $(C_BINDINGS)
|
||||||
FLATCC_SRCS=deps/flatcc/src/runtime/json_parser.c deps/flatcc/src/runtime/verifier.c deps/flatcc/src/runtime/builder.c deps/flatcc/src/runtime/emitter.c deps/flatcc/src/runtime/refmap.c
|
FLATCC_SRCS=deps/flatcc/src/runtime/json_parser.c deps/flatcc/src/runtime/verifier.c deps/flatcc/src/runtime/builder.c deps/flatcc/src/runtime/emitter.c deps/flatcc/src/runtime/refmap.c
|
||||||
BOLT11_SRCS = bolt11/bolt11.c bolt11/bech32.c bolt11/tal.c bolt11/talstr.c bolt11/take.c bolt11/list.c bolt11/utf8.c bolt11/amount.c bolt11/hash_u5.c
|
BOLT11_SRCS = src/bolt11/bolt11.c src/bolt11/bech32.c src/bolt11/tal.c src/bolt11/talstr.c src/bolt11/take.c src/bolt11/list.c src/bolt11/utf8.c src/bolt11/amount.c src/bolt11/hash_u5.c
|
||||||
SRCS = nostrdb.c sha256.c $(BOLT11_SRCS) $(FLATCC_SRCS)
|
SRCS = src/nostrdb.c src/sha256.c $(BOLT11_SRCS) $(FLATCC_SRCS)
|
||||||
LDS = $(OBJS) $(ARS)
|
LDS = $(OBJS) $(ARS)
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=.o)
|
||||||
DEPS = $(OBJS) $(HEADERS) $(ARS)
|
DEPS = $(OBJS) $(HEADERS) $(ARS)
|
||||||
@@ -11,11 +11,11 @@ LMDB_VER=0.9.31
|
|||||||
FLATCC_VER=05dc16dc2b0316e61063bb1fc75426647badce48
|
FLATCC_VER=05dc16dc2b0316e61063bb1fc75426647badce48
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
SUBMODULES = deps/secp256k1
|
SUBMODULES = deps/secp256k1
|
||||||
C_BINDINGS_PROFILE=bindings/c/profile_builder.h bindings/c/profile_reader.h bindings/c/profile_verifier.h bindings/c/profile_json_parser.h
|
BINDINGS=src/bindings
|
||||||
C_BINDINGS_META=bindings/c/meta_builder.h bindings/c/meta_reader.h bindings/c/meta_verifier.h bindings/c/meta_json_parser.h
|
C_BINDINGS_PROFILE=$(BINDINGS)/c/profile_builder.h $(BINDINGS)/c/profile_reader.h $(BINDINGS)/c/profile_verifier.h $(BINDINGS)/c/profile_json_parser.h
|
||||||
C_BINDINGS_COMMON=bindings/c/flatbuffers_common_builder.h bindings/c/flatbuffers_common_reader.h
|
C_BINDINGS_META=$(BINDINGS)/c/meta_builder.h $(BINDINGS)/c/meta_reader.h $(BINDINGS)/c/meta_verifier.h $(BINDINGS)/c/meta_json_parser.h
|
||||||
|
C_BINDINGS_COMMON=$(BINDINGS)/c/flatbuffers_common_builder.h $(BINDINGS)/c/flatbuffers_common_reader.h
|
||||||
C_BINDINGS=$(C_BINDINGS_COMMON) $(C_BINDINGS_PROFILE) $(C_BINDINGS_META)
|
C_BINDINGS=$(C_BINDINGS_COMMON) $(C_BINDINGS_PROFILE) $(C_BINDINGS_META)
|
||||||
BINDINGS=bindings
|
|
||||||
BIN=ndb
|
BIN=ndb
|
||||||
|
|
||||||
CHECKDATA=testdata/db/v0/data.mdb
|
CHECKDATA=testdata/db/v0/data.mdb
|
||||||
@@ -25,7 +25,7 @@ all: lib ndb
|
|||||||
lib: benches test
|
lib: benches test
|
||||||
|
|
||||||
ndb: ndb.c $(DEPS)
|
ndb: ndb.c $(DEPS)
|
||||||
$(CC) $(CFLAGS) ndb.c $(LDS) -o $@
|
$(CC) -Isrc $(CFLAGS) ndb.c $(LDS) -o $@
|
||||||
|
|
||||||
bindings: bindings-swift bindings-rust bindings-c
|
bindings: bindings-swift bindings-rust bindings-c
|
||||||
|
|
||||||
@@ -53,42 +53,42 @@ config.h: configurator
|
|||||||
|
|
||||||
bindings-c: $(C_BINDINGS)
|
bindings-c: $(C_BINDINGS)
|
||||||
|
|
||||||
bindings/%/.dir:
|
src/bindings/%/.dir:
|
||||||
mkdir -p $(shell dirname $@)
|
mkdir -p $(shell dirname $@)
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
bindings/c/%_builder.h: schemas/%.fbs bindings/c/.dir
|
src/bindings/c/%_builder.h: schemas/%.fbs $(BINDINGS)/c/.dir
|
||||||
flatcc --builder $< -o bindings/c
|
flatcc --builder $< -o $(BINDINGS)/c
|
||||||
|
|
||||||
bindings/c/%_verifier.h bindings/c/%_reader.h: schemas/%.fbs bindings/c/.dir
|
src/bindings/c/%_verifier.h bindings/c/%_reader.h: schemas/%.fbs $(BINDINGS)/c/.dir
|
||||||
flatcc --verifier -o bindings/c $<
|
flatcc --verifier -o $(BINDINGS)/c $<
|
||||||
|
|
||||||
bindings/c/flatbuffers_common_reader.h: bindings/c/.dir
|
src/bindings/c/flatbuffers_common_reader.h: $(BINDINGS)/c/.dir
|
||||||
flatcc --common_reader -o bindings/c
|
flatcc --common_reader -o $(BINDINGS)/c
|
||||||
|
|
||||||
bindings/c/flatbuffers_common_builder.h: bindings/c/.dir
|
src/bindings/c/flatbuffers_common_builder.h: $(BINDINGS)/c/.dir
|
||||||
flatcc --common_builder -o bindings/c
|
flatcc --common_builder -o $(BINDINGS)/c
|
||||||
|
|
||||||
bindings/c/%_json_parser.h: schemas/%.fbs bindings/c/.dir
|
src/bindings/c/%_json_parser.h: schemas/%.fbs $(BINDINGS)/c/.dir
|
||||||
flatcc --json-parser $< -o bindings/c
|
flatcc --json-parser $< -o $(BINDINGS)/c
|
||||||
|
|
||||||
bindings-rust: bindings/rust/ndb_profile.rs bindings/rust/ndb_meta.rs
|
bindings-rust: $(BINDINGS)/rust/ndb_profile.rs $(BINDINGS)/rust/ndb_meta.rs
|
||||||
|
|
||||||
bindings/rust/ndb_profile.rs: schemas/profile.fbs bindings/rust
|
$(BINDINGS)/rust/ndb_profile.rs: schemas/profile.fbs $(BINDINGS)/rust
|
||||||
flatc --gen-json-emit --rust $<
|
flatc --gen-json-emit --rust $<
|
||||||
@mv profile_generated.rs $@
|
@mv profile_generated.rs $@
|
||||||
|
|
||||||
bindings/rust/ndb_meta.rs: schemas/meta.fbs bindings/swift
|
$(BINDINGS)/rust/ndb_meta.rs: schemas/meta.fbs $(BINDINGS)/swift
|
||||||
flatc --rust $<
|
flatc --rust $<
|
||||||
@mv meta_generated.rs $@
|
@mv meta_generated.rs $@
|
||||||
|
|
||||||
bindings-swift: bindings/swift/NdbProfile.swift bindings/swift/NdbMeta.swift
|
bindings-swift: $(BINDINGS)/swift/NdbProfile.swift $(BINDINGS)/swift/NdbMeta.swift
|
||||||
|
|
||||||
bindings/swift/NdbProfile.swift: schemas/profile.fbs bindings/swift
|
$(BINDINGS)/swift/NdbProfile.swift: schemas/profile.fbs $(BINDINGS)/swift
|
||||||
flatc --gen-json-emit --swift $<
|
flatc --gen-json-emit --swift $<
|
||||||
@mv profile_generated.swift $@
|
@mv profile_generated.swift $@
|
||||||
|
|
||||||
bindings/swift/NdbMeta.swift: schemas/meta.fbs bindings/swift
|
$(BINDINGS)/swift/NdbMeta.swift: schemas/meta.fbs $(BINDINGS)/swift
|
||||||
flatc --swift $<
|
flatc --swift $<
|
||||||
@mv meta_generated.swift $@
|
@mv meta_generated.swift $@
|
||||||
|
|
||||||
@@ -135,9 +135,6 @@ deps/secp256k1/config.log: deps/secp256k1/configure
|
|||||||
deps/lmdb/liblmdb.a: deps/lmdb/lmdb.h
|
deps/lmdb/liblmdb.a: deps/lmdb/lmdb.h
|
||||||
$(MAKE) -C deps/lmdb liblmdb.a
|
$(MAKE) -C deps/lmdb liblmdb.a
|
||||||
|
|
||||||
bench: bench.c $(DEPS)
|
|
||||||
$(CC) $(CFLAGS) bench.c $(LDS) -o $@
|
|
||||||
|
|
||||||
testdata/db/ndb-v0.tar.zst:
|
testdata/db/ndb-v0.tar.zst:
|
||||||
curl https://cdn.jb55.com/s/ndb-v0.tar.zst -o $@
|
curl https://cdn.jb55.com/s/ndb-v0.tar.zst -o $@
|
||||||
|
|
||||||
@@ -155,14 +152,14 @@ testdata/many-events.json.zst:
|
|||||||
testdata/many-events.json: testdata/many-events.json.zst
|
testdata/many-events.json: testdata/many-events.json.zst
|
||||||
zstd -d $<
|
zstd -d $<
|
||||||
|
|
||||||
bench-ingest-many: bench-ingest-many.c $(DEPS) testdata/many-events.json
|
bench: bench-ingest-many.c $(DEPS) testdata/many-events.json
|
||||||
$(CC) $(CFLAGS) $< $(LDS) -o $@
|
$(CC) -Isrc $(CFLAGS) $< $(LDS) -o $@
|
||||||
|
|
||||||
testdata/db/.dir:
|
testdata/db/.dir:
|
||||||
@mkdir -p testdata/db
|
@mkdir -p testdata/db
|
||||||
touch testdata/db/.dir
|
touch testdata/db/.dir
|
||||||
|
|
||||||
test: test.c $(DEPS) testdata/db/.dir
|
test: test.c $(DEPS) testdata/db/.dir
|
||||||
$(CC) $(CFLAGS) test.c $(LDS) -o $@
|
$(CC) -Isrc $(CFLAGS) test.c $(LDS) -o $@
|
||||||
|
|
||||||
.PHONY: tags clean
|
.PHONY: tags clean
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
|
|
||||||
#include "io.h"
|
|
||||||
#include "nostrdb.h"
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
static int bench_parser(int times, const char *json, int len)
|
|
||||||
{
|
|
||||||
static unsigned char buf[2<<18];
|
|
||||||
|
|
||||||
struct timespec t1, t2;
|
|
||||||
int i;
|
|
||||||
long nanos, ms;
|
|
||||||
struct ndb_note *note;
|
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &t1);
|
|
||||||
for (i = 0; i < times; i++) {
|
|
||||||
if (!ndb_note_from_json(json, len, ¬e, buf, sizeof(buf))) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &t2);
|
|
||||||
|
|
||||||
nanos = (t2.tv_sec - t1.tv_sec) * (long)1e9 + (t2.tv_nsec - t1.tv_nsec);
|
|
||||||
ms = nanos / 1e6;
|
|
||||||
printf("ns/run\t%ld\nms/run\t%f\nns\t%ld\nms\t%ld\n",
|
|
||||||
nanos/times, (double)ms/(double)times, nanos, ms);
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char *argv[], char **env)
|
|
||||||
{
|
|
||||||
static const int alloc_size = 2 << 18;
|
|
||||||
int times = 10000, len = 0;
|
|
||||||
unsigned char buf[alloc_size];
|
|
||||||
|
|
||||||
if (!read_file("testdata/contacts.json", buf, alloc_size, &len))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (argc >= 2)
|
|
||||||
times = atoi(argv[1]);
|
|
||||||
|
|
||||||
fprintf(stderr, "benching parser %d times\n", times);
|
|
||||||
if (!bench_parser(times, (const char*)&buf[0], len))
|
|
||||||
return 2;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -3,6 +3,12 @@
|
|||||||
#define CCAN_COMPILER_H
|
#define CCAN_COMPILER_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#if HAVE_UNALIGNED_ACCESS
|
||||||
|
#define alignment_ok(p, n) 1
|
||||||
|
#else
|
||||||
|
#define alignment_ok(p, n) ((size_t)(p) % (n) == 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef COLD
|
#ifndef COLD
|
||||||
#if HAVE_ATTRIBUTE_COLD
|
#if HAVE_ATTRIBUTE_COLD
|
||||||
/**
|
/**
|
||||||
Reference in New Issue
Block a user