nostrdb

an unfairly fast embedded nostr database backed by lmdb
git clone git://jb55.com/nostrdb
Log | Files | Refs | Submodules | README | LICENSE

DateCommit messageAuthorFiles+-
2024-08-27 08:46Merge remote-tracking branch 'github/pr/43'William Casarin3+5-3
2024-08-19 21:35filter: retain const variant of get_int_elemnetWilliam Casarin3+17-10
2024-08-19 21:23filter: allow mutable int elementsWilliam Casarin3+12-12
2024-08-18 01:58bolt11: remove unneeded fields.Rusty Russell2+3-189
2024-08-18 01:58bolt11: update to latest version from CLNRusty Russell4+402-346
2024-08-18 01:58Makefile: fix missing dependencies on bolt11 headers.Rusty Russell3+2-259
2024-08-16 19:17ndb_filter_from_jsonWilliam Casarin3+376-5
2024-08-17 05:53Makefile: define CCAN_TAL_NEVER_RETURN_NULLRusty Russell1+1-1
2024-08-17 05:51ccan: update to latest.Rusty Russell5+68-68
2024-08-17 05:51ccan: sync with normal versions.Rusty Russell97+36657-2101
2024-08-17 05:27Makefile: rule to update ccan/ subdir.Rusty Russell1+13-1
2024-08-17 05:27src: delete copies outside ccan/ dirs.Rusty Russell27+1-5851
2024-08-17 05:27Makefile: build using ccan/ versions of files.Rusty Russell22+50-47
2024-08-17 05:27bolt11: move utf8_check into local function.Rusty Russell5+18-24
2024-08-17 05:06ccan: copy ccan files into their own subdirectory.Rusty Russell28+6085-0
2024-08-14 18:21expose filter introspection methodsWilliam Casarin2+11-6
2024-08-13 18:20expose ndb_filter_get_elementsWilliam Casarin2+2-1
2024-08-03 21:24make more things constWilliam Casarin3+11-11
2024-08-03 20:34add ndb_filter_json methodWilliam Casarin3+190-2
2024-08-03 20:50ocd: cleanup eol whitespaceWilliam Casarin2+32-31
2024-08-01 23:55Fix issue where id tag filters are pushed as stringsWilliam Casarin2+12-2
2024-08-01 21:07fix bech32 parsing and add testWilliam Casarin2+41-3
2024-08-01 20:38ndb: add #e queriesWilliam Casarin1+25-1
2024-08-01 20:38debug: improve tag index displayWilliam Casarin3+34-7
2024-08-01 20:37fix note content parsing bug with damus.io urlsWilliam Casarin2+117-11
2024-07-15 17:35fix crash on release builds because of flatcc assertionsWilliam Casarin1+1-1
2024-06-28 21:41ndb_note_json: return lengthWilliam Casarin1+6-1
2024-06-28 20:35fix bugWilliam Casarin1+3-1
2024-05-28 18:26switch to MIT licenseWilliam Casarin1+22-674
2024-04-30 21:22ndb: dump json in filters and fulltext queriesWilliam Casarin2+31-24
2024-04-30 21:19api: add ndb_note_jsonWilliam Casarin2+51-0
2024-04-25 23:20fix realloc corruptionWilliam Casarin1+3-3
2024-04-25 23:22make: fix ingest bench buildWilliam Casarin1+1-1
2024-04-04 20:22add ability to register a subscription callbackWilliam Casarin2+34-3
2024-04-20 05:18ndb: add profile flatbuffer record dump utilWilliam Casarin2+40-5
2024-04-11 01:06add ndb_unsubscribeWilliam Casarin3+46-14
2024-04-04 20:03build: fix compile warningWilliam Casarin1+3-2
2024-04-03 19:23fix dubious looking parens logicWilliam Casarin1+1-1
2024-03-21 17:03readme: we have query support nowWilliam Casarin1+1-2
2024-03-13 07:27ndb: add author query supportWilliam Casarin1+26-4
2024-03-13 07:31plan: use a less efficient plan for author query plansWilliam Casarin1+3-1
2024-03-12 19:53test: add test for created_at query planWilliam Casarin1+29-0
2024-03-12 18:55plan: add created_at query planWilliam Casarin1+89-5
2024-03-12 19:53test: add testdata for a large contact filterWilliam Casarin1+285-0
2024-02-11 17:05profile: fix bug where profile does not updateWilliam Casarin1+0-1
2024-02-11 22:07Merge remote-tracking branch 'github/master'William Casarin3+21-9
2024-02-11 22:05cores: just set to 2 on unknown platformsWilliam Casarin1+1-1
2024-02-10 03:02android: add missing headersWilliam Casarin1+4-0
2024-02-10 02:59random: add getrandom fallback for androidWilliam Casarin1+20-0
2024-02-09 23:09filter: make sure clone copies metadataWilliam Casarin1+2-0
2024-02-09 22:14filter: make sure to return clone errorsWilliam Casarin1+1-2
2024-02-09 22:07filter: add ndb_filter_cloneWilliam Casarin2+31-1
2024-02-09 21:58filter: use relative data offsets for easy cloningWilliam Casarin3+203-127
2024-02-08 23:07filter: add ndb_filter_endWilliam Casarin3+102-12
2024-02-08 00:18query: include note size in query resultsWilliam Casarin2+12-8
2024-02-07 23:14return number of items popped when pollingWilliam Casarin1+1-1
2024-02-07 23:05silence annoying debugWilliam Casarin1+1-1
2024-02-07 21:55filters: copy filter metadata into subscriptionWilliam Casarin1+6-8
2024-01-10 20:17cli/ndb: show fulltext search perfWilliam Casarin1+7-1
2024-02-06 00:48ndb: add ndb_poll_for_notesWilliam Casarin2+16-2
2024-02-06 00:47queue: switch to prot_queue_try_pop_allWilliam Casarin2+15-9
2024-02-06 00:46make: pass src to tags cmdWilliam Casarin1+1-1
2024-01-26 01:52tce: fix build for previous TCE changeWilliam Casarin1+1-0
2024-01-26 01:52blocks: add word count interfaceWilliam Casarin2+5-0
2024-01-25 23:31header: add ptr helpers for swiftWilliam Casarin1+7-1
2024-01-25 23:30strblock: add typedefWilliam Casarin1+2-2
2023-12-24 21:22tce: add AUTH to-client-eventCharlie Fish2+12-0
2024-01-10 17:01fix build on macosWilliam Casarin2+2-3
2024-01-09 00:18query: add tag index and tag queriesWilliam Casarin5+320-20
2024-01-08 22:29filter: don't end field if we don't have one activeWilliam Casarin1+4-0
2024-01-06 17:05cli/ndb: allow multiple kind values in queryWilliam Casarin2+21-4
2024-01-08 22:29envrc: add PWD to pathWilliam Casarin1+1-0
2024-01-08 20:09perf: add some flamegraph helpers to makefileWilliam Casarin3+20-2
2024-01-06 19:50fix macos buildWilliam Casarin3+5-5
2024-01-06 06:54ndb: measure query performanceWilliam Casarin2+18-5
2024-01-06 05:45query: support until for kind query plansWilliam Casarin2+14-4
2024-01-06 05:39ndb: some query docsWilliam Casarin1+1-0
2024-01-06 05:37ndb: add inital query commandWilliam Casarin3+44-3
2024-01-06 04:45Query PlansWilliam Casarin3+235-204
2024-01-06 04:46index: make sure kind index is DUPSORT + INTEGERDUPWilliam Casarin1+3-1
2024-01-06 04:45filter: rename FILTER_GENERIC to FILTER_TAGWilliam Casarin3+21-21
2024-01-06 04:40cleanup: remove old dbscan stuffWilliam Casarin1+0-12
2024-01-06 04:40debug: add print_kind_keys helperWilliam Casarin3+28-0
2024-01-06 04:46todo: update some todosWilliam Casarin1+3-0
2024-01-05 15:26Fix typosshuoer862+3-3
2024-01-04 23:24query: implement kind queriesWilliam Casarin2+109-10
2024-01-04 22:39Initial nostrdb queriesWilliam Casarin3+284-9
2024-01-04 22:38cursor: fix bug when pushing last elementWilliam Casarin1+1-1
2024-01-04 21:44query: extract ndb_cursor_startWilliam Casarin1+23-11
2024-01-04 21:44cursor: remove old array codeWilliam Casarin1+0-11
2024-01-04 21:43filter: don't allow adding id elements on kindsWilliam Casarin1+1-1
2024-01-04 16:28ocd: small cleanupWilliam Casarin1+6-6
2024-01-04 02:15test: actually use filter in subscription in filter testWilliam Casarin1+1-1
2024-01-04 01:57filters: remove ndb_filter_group from public APIWilliam Casarin3+22-30
2024-01-04 01:02filter: use binary search for large contact list filtersWilliam Casarin1+8-7
2024-01-04 00:34filter: sort filter elementsWilliam Casarin2+58-1
2024-01-03 22:40test: use subscriptions in profile update testWilliam Casarin3+28-20
2024-01-03 22:44subs: always fail when calling wait_for_notes on a subid of 0William Casarin1+5-0
2024-01-03 22:44subs: notify on profile notes as wellWilliam Casarin1+9-0
2024-01-03 22:44debug: add a few more debug statementWilliam Casarin1+7-6
2024-01-03 22:43filters: add ndb_filter_group_init functionWilliam Casarin2+2-1
2024-01-03 22:04subs: subs and monitor cleanupWilliam Casarin4+34-11
2024-01-04 02:09search: don't enforce sequential tokensWilliam Casarin1+2-2
2024-01-03 20:27test: switch reaction test to use subscriptionsWilliam Casarin3+20-6
2024-01-03 19:50test: extend subscription test to query afterwardsWilliam Casarin2+11-0
2023-11-27 04:04Initial nostrdb relay subscriptionsWilliam Casarin5+277-22
2024-01-02 21:24test: add another url parsing testWilliam Casarin1+37-0
2024-01-01 22:39disable lmdb downloadWilliam Casarin1+6-6
2023-12-31 05:20blocks: add ndb_blocks_flags functionWilliam Casarin2+6-2
2024-01-01 17:40fix: don't write the owned flag to the DBWilliam Casarin1+3-0
2023-12-31 04:22test: make sure the block types are correctWilliam Casarin1+19-5
2023-12-31 03:20fix clang compile issueWilliam Casarin1+1-1
2023-12-31 03:19blocks: expose block iterator internalsWilliam Casarin6+56-60
2023-12-29 17:40blocks: write note blocks on ingestWilliam Casarin2+160-9
2023-12-30 14:33blocks: actually set the note block versionWilliam Casarin1+1-0
2023-12-30 14:30blocks: add ndb_blocks_freeWilliam Casarin4+14-1
2023-12-30 14:29blocks: add total_sizeWilliam Casarin4+15-5
2023-12-30 14:27header: move bech32 aroundWilliam Casarin1+76-76
2023-12-29 17:38invoice: fix crash in any-amount invoice parsingWilliam Casarin1+1-2
2023-12-30 14:33test: chop some unused logsWilliam Casarin1+0-1
2023-12-29 00:11parser: fix bech32 block decodingWilliam Casarin6+142-87
2023-12-28 22:46bech32: fix big in bech32 size parsingWilliam Casarin1+1-1
2023-12-28 22:00test: ocd tweakWilliam Casarin1+8-6
2023-12-28 21:54blocks: add note block iteratorWilliam Casarin9+283-155
2023-12-28 21:52parser: handle period at end of urlkernelkind1+50-3
2023-12-27 23:20bech32: expand nevent test to include 2 relaysWilliam Casarin1+4-2
2023-12-27 22:55content_parser: add initial db decodersWilliam Casarin6+167-36
2023-12-27 22:54bech32: add some initial testsWilliam Casarin3+61-21
2023-12-27 22:28nostr_bech32: parse in one passWilliam Casarin2+107-125
2023-12-27 20:48update todoWilliam Casarin1+1-0
2023-12-27 20:43Inital embedded content parserWilliam Casarin9+264-102
2023-12-27 20:42search: switch to cursor_align functionWilliam Casarin1+2-9
2023-12-27 20:41cursor: add align functionWilliam Casarin1+15-0
2023-12-27 20:41cursor: fix some warningsWilliam Casarin1+2-1
2023-12-27 20:41cursor: fix empty string pushing in push_c_strWilliam Casarin1+2-0
2023-12-27 20:40cursor: add pull_varint_u32William Casarin1+13-0
2023-12-27 20:40cursor: add malloc_sliceWilliam Casarin1+10-0
2023-12-27 20:35nostr_bech32: only parse up to raw bech32 buffersWilliam Casarin4+166-93
2023-12-23 23:42bech32: retabWilliam Casarin2+280-280
2023-12-23 22:46block: add bolt11 invoice encoding/decodingWilliam Casarin5+132-2
2023-12-23 21:38test: fix uint64 typesWilliam Casarin1+10-10
2023-12-23 23:36make: cleanup a bit, separate bench runningWilliam Casarin1+6-5
2023-12-23 23:23fix github actionWilliam Casarin1+7-7
2023-12-23 23:16fix buildWilliam Casarin1+8-5
2023-12-23 21:20varint: switch to 64 bit varintsWilliam Casarin6+123-101
2023-12-23 21:19test: disable migrate for nowWilliam Casarin2+4-4
2023-12-23 21:11cursor: re-apply infinite loop bug fixWilliam Casarin1+32-33
2023-12-23 01:10add libnostrdb.aWilliam Casarin2+5-1
2023-12-23 00:56add initial content parserWilliam Casarin1+388-0
2023-12-23 17:30move everything to srcWilliam Casarin83+351-399
2023-12-23 00:48add supporting files for the bolt11 parserWilliam Casarin50+8007-418
2023-12-22 21:16improve compile timesWilliam Casarin2+4-5
2023-12-21 02:48add nix shellWilliam Casarin2+7-1
2023-12-17 21:29re-apply ispunct crash fixWilliam Casarin1+1-1
2023-12-16 03:52make: don't build bindings in `all`William Casarin2+12-12
2023-12-15 03:01commit config for now since rust can't build it yetWilliam Casarin2+18-1
2023-12-15 02:57rust: move into separate projectWilliam Casarin10+0-263
2023-12-15 02:56deps: commit lmdb and flatccWilliam Casarin243+70674-1
2023-12-15 02:49rust: output bindings to build dirWilliam Casarin4+3-4
2023-12-15 02:36rust: update published includesWilliam Casarin1+1-2
2023-12-15 02:33rust: add description for initial releaseWilliam Casarin1+3-0
2023-12-14 20:10build: fix constness on config pointer in ingester threadWilliam Casarin1+1-1
2023-12-14 20:09rust: libc is not neededWilliam Casarin1+0-3
2023-12-14 19:59rust: initial api for Ndb and NdbConfigWilliam Casarin8+119-31
2023-12-14 19:25rust: fix some warningsWilliam Casarin2+3-2
2023-12-14 18:58rust: move to subfolderWilliam Casarin6+125-135
2023-12-14 04:25ci: add rust build to ciWilliam Casarin2+7-1
2023-12-14 04:23rust: build secp256k1 as a part of the build processWilliam Casarin1+66-11
2023-12-11 03:16rust: generate rust bindings from C headerWilliam Casarin5+122-4
2023-12-14 01:56cursor: fix warning that build.rs is complaining aboutWilliam Casarin1+1-2
2023-12-12 21:19api: don't expose many internals, like noteWilliam Casarin4+464-418
2023-12-14 01:53stream: actually use file pointer in stream apiWilliam Casarin1+1-1
2023-12-03 14:33add "import -"Yasuhiro Matsumoto3+26-3
2023-12-11 03:04build: fix additional compiler errorsWilliam Casarin3+7-6
2023-12-11 22:43lmdb: don't begin query if we have a bad lmdb envWilliam Casarin1+2-0
2023-12-04 22:55cursor: silence utf8 warningsWilliam Casarin1+2-2
2023-12-04 22:50cursor: sync with damus' cursorWilliam Casarin3+587-273
2023-12-04 22:13writer: make sure we don't write a note if we already have itWilliam Casarin2+7-10
2023-12-04 22:27test: "fix" search testWilliam Casarin1+4-2
2023-12-04 22:27util: add print_util.h for various printing tasksWilliam Casarin4+38-47
2023-12-02 23:02search: fix another newest-first bugWilliam Casarin1+7-2
2023-12-02 21:55add lmdb data stuff to gitignoreWilliam Casarin1+4-0
2023-12-02 21:09search: fix subtle bug with some newest-first text searchWilliam Casarin3+92-26
2023-12-02 20:16search: also index longformWilliam Casarin1+2-2
2023-12-02 19:49refactor: move search key printer in case we need itWilliam Casarin1+8-8
2023-12-02 01:26test: fix text search testWilliam Casarin1+1-1
2023-12-02 01:19util/ndb: return note idsWilliam Casarin1+10-0
2023-12-02 18:40test: add missing search testdataWilliam Casarin1+3-0
2023-12-02 01:14search: make sure we break instead of returnWilliam Casarin1+1-1
2023-12-02 01:04search: allow searching from newest-to-oldest and oldest-to-newestWilliam Casarin4+106-26
2023-12-02 00:21search: add limit paramWilliam Casarin3+6-4
2023-12-01 23:37search: remove result printing, move to util/ndbWilliam Casarin2+33-41
2023-12-01 23:29remove old benchmarkWilliam Casarin2+0-60
2023-12-01 22:26util/ndb: fix buildWilliam Casarin3+10-4
2023-12-01 17:52Delete unuse argument (destsize)hakkadaikon2+2-2
2023-12-01 21:56rename get_physical_cores to get_cpu_coresWilliam Casarin2+2-2
2023-12-01 21:20add missing cpu.hWilliam Casarin2+35-1
2023-12-01 21:17config: fix ingester thread settingsWilliam Casarin1+3-3
2023-12-01 21:10ingest: add configurable ingest filterWilliam Casarin4+144-78
2023-12-01 19:17readme: you need to make many-events!William Casarin1+1-0
2023-12-01 19:08readme: show search query outputWilliam Casarin1+4-0
2023-12-01 18:49readme: fix typoWilliam Casarin1+1-1
2023-12-01 18:48readme: update to mention ndb toolWilliam Casarin1+37-0
2023-12-01 18:45readme: update wordingWilliam Casarin1+2-2
2023-12-01 18:44readme: note about api stabilityWilliam Casarin1+5-0
2023-12-01 18:41Switch to GPLWilliam Casarin1+674-1
2023-11-30 21:00search: phrase searching workingWilliam Casarin2+254-160
2023-11-30 17:44flag: add ndb config flag for skipping note verificationWilliam Casarin4+47-20
2023-11-29 20:04util/ndb: add import commandWilliam Casarin1+27-0
2023-11-29 19:01util/ndb: add fulltext searchingWilliam Casarin2+28-6
2023-11-29 20:02util/ndb: reduce threads a bitWilliam Casarin1+1-1
2023-11-29 20:01search: fix infinite loop when parsing some notesWilliam Casarin1+9-0
2023-11-29 19:58segfault: fix weird crash in ispunctWilliam Casarin1+1-1
2023-11-29 20:03db: remove the DUPFIXED flag from the fulltext dbWilliam Casarin1+2-1
2023-11-29 20:03debug: fix some debug-mode compile issuesWilliam Casarin1+3-1
2023-11-28 23:53search: prepare text search for accurate phrase resultsWilliam Casarin3+323-61
2023-11-28 18:51search: make search case insensitiveWilliam Casarin3+27-3
2023-11-28 00:08Add fulltext search indexWilliam Casarin5+662-20
2023-11-28 00:39Fix invalid db selection when writing kind indexWilliam Casarin1+1-1
2023-11-25 23:24index: write kind index when processing notesWilliam Casarin1+37-0
2023-11-25 23:15refactor: move write id index to its own functionWilliam Casarin1+29-14
2023-11-25 23:07refactor: move profile index writing to its own functionWilliam Casarin1+31-15
2023-11-23 22:19readme: add workflow status badgeWilliam Casarin1+2-0
2023-11-23 21:32ci: add flatcc to github actionWilliam Casarin1+17-1
2023-11-23 21:20index: create kind+timestamp index databaseWilliam Casarin2+9-1
2023-11-23 21:19index: add u64_timestamp lmdb comparatorWilliam Casarin1+27-0
2023-11-23 21:18debug: use mdb_strerror in more placesWilliam Casarin1+2-2
2023-11-23 20:45filter: make sure we only match single charsWilliam Casarin1+1-1
2023-11-22 21:46filters: add initial filter interfaceWilliam Casarin3+512-0
2023-11-22 18:27test: remove non-deterministic testWilliam Casarin1+2-1
2023-11-21 23:41cursor: add cursor_skipWilliam Casarin1+10-0
2023-11-17 01:58all these TODOs are doneWilliam Casarin1+0-8
2023-11-14 18:25ndb/stat: include totals in stat outputWilliam Casarin3+14-3
2023-11-14 18:25fix buildWilliam Casarin1+1-1
2023-11-14 17:47cli: add ndb toolWilliam Casarin3+82-1
2023-11-14 17:45stat: add ndb_stat for counting thingsWilliam Casarin2+212-12
2023-11-14 17:43ingester: handle case where transaction may failWilliam Casarin1+7-2
2023-11-04 02:57ndb: fix potential crash in some tsid queriesWilliam Casarin1+5-2
2023-11-02 05:12ndb: migration fix for japanese profile namesWilliam Casarin2+99-22
2023-11-02 01:18json: fix profile parsing of japanese usernamesWilliam Casarin1+2-2
2023-10-23 01:52log: remove spammy logWilliam Casarin1+1-1
2023-10-20 04:26test: add test for fetched_at logicWilliam Casarin2+21-5
2023-10-06 17:04record when a profile was last fetchedWilliam Casarin3+114-13
2023-10-08 05:38stats: add reaction counterWilliam Casarin5+181-6
2023-10-08 05:43update generated bindings for note metadataWilliam Casarin6+335-18
2023-10-08 05:34update metadata schemaWilliam Casarin1+5-0
2023-10-08 04:12txn: refactor nostrdb to use ndb_txn in more places internallyWilliam Casarin2+87-60
2023-10-08 00:37testdata: add japanese profileWilliam Casarin1+1-0
2023-10-08 00:37test: update replacement testWilliam Casarin2+5-7
2023-10-06 17:37Fix profiles not updatingWilliam Casarin1+1-1
2023-09-28 10:41profiles: switch to pubkeys for last fetched timeWilliam Casarin2+7-7
2023-09-28 02:51db: add ndb_read_last_profile_fetchWilliam Casarin2+12-1
2023-09-28 02:43db: add new database for tracking last profile fetchesWilliam Casarin2+50-0
2023-09-28 02:16initial rust bindingsWilliam Casarin3+706-2
2023-09-25 01:34make rust bindings dirWilliam Casarin1+0-0
2023-09-24 23:21add ndb_process_client_event(s)William Casarin4+180-66
2023-09-24 22:39actually run profile updates test...William Casarin1+1-0
2023-09-24 22:39log: cleanup logsWilliam Casarin2+4-4
2023-09-24 22:16test: test profile updatesWilliam Casarin2+49-2
2023-09-22 18:43bench: fix buildWilliam Casarin2+2-2
2023-09-22 18:43log: move some printfs to ndb_debugWilliam Casarin1+3-3
2023-09-21 22:00search: make profile search case insensitiveWilliam Casarin2+49-6
2023-09-21 16:09add profile search index migrationsWilliam Casarin2+149-86
2023-09-20 13:33test: add test to check profile search duplicatesWilliam Casarin1+19-11
2023-09-20 13:23query: remove unused dataWilliam Casarin1+0-1
2023-09-20 13:18search: skip duplicate pubkeys when searching profilesWilliam Casarin3+55-10
2023-09-19 20:30search: use proper compare functionWilliam Casarin1+1-0
2023-09-19 19:20db: implement profile search indexWilliam Casarin4+224-3
2023-09-13 15:29rgignore: add testdataWilliam Casarin1+1-0
2023-09-12 23:14migrations: add initial migration logicWilliam Casarin6+198-12
2023-09-11 15:43log: fix log error messagesWilliam Casarin1+15-3
2023-09-07 20:21query: fix invalid type signatureWilliam Casarin2+19-4
2023-09-07 17:47optimized function just for fetching notekeys from indicesWilliam Casarin2+12-0
2023-09-06 18:21return primkey keys on profile and note index queriesWilliam Casarin3+19-11
2023-08-31 22:39test: add test for profile replacement logicWilliam Casarin2+47-0
2023-08-30 20:57add transactionsWilliam Casarin3+49-36
2023-08-29 02:43Fix build on some compilersWilliam Casarin1+1-1
2023-08-28 17:08port escaped slash fix from damusWilliam Casarin1+1-0
2023-08-28 15:04don't force debug buildsWilliam Casarin1+1-1
2023-08-28 14:32debug: turn off noisy debugs for nowWilliam Casarin1+3-3
2023-08-28 14:22fix lmdb alignment issuesWilliam Casarin5+26-13
2023-08-28 04:10ndb: assert alignmentWilliam Casarin2+17-6
2023-08-28 01:57ndb: add support for fetching notes by primary keyWilliam Casarin3+45-4
2023-08-28 01:25ndb: add note foreign key to profileWilliam Casarin9+155-69
2023-08-27 22:06swift: gen codable instancesWilliam Casarin2+57-1
2023-08-27 19:44ndb: switch to profile records in dbWilliam Casarin4+43-18
2023-08-27 19:37profile: use ProfileRecord to hold additional profile metadataWilliam Casarin7+261-2
2023-08-27 19:35add bech32 utilsWilliam Casarin2+359-0
2023-08-27 05:16profiles: add lud06 fieldWilliam Casarin7+55-27
2023-08-27 03:34ndb: test profile flatbuffersWilliam Casarin4+22-12
2023-08-27 01:09tsid: return lengthWilliam Casarin3+13-8
2023-08-27 00:40ndb: add ndb_lookup_tsid helperWilliam Casarin2+22-9
2023-08-26 23:51add failing damus test... yet curiously it worksWilliam Casarin2+42-0
2023-08-26 23:39fix benchesWilliam Casarin2+4-4
2023-08-26 01:26ndb: make id lookups constWilliam Casarin2+5-5
2023-08-26 01:03ndb: add db directory argumentWilliam Casarin3+14-8
2023-08-21 21:36test: add test for fuzz crashWilliam Casarin1+9-0
2023-08-13 14:35Fix potential crashes in char_to_hexgeeknik1+2-2
2023-08-18 15:03tsid: switch to uint64_maxWilliam Casarin1+1-1
2023-08-12 16:14make: add more benches to cleanWilliam Casarin1+1-1
2023-08-12 04:40make: fix build on linux, bump queue sizesWilliam Casarin3+5-8
2023-08-12 04:28bench: add 1million note import benchmarkWilliam Casarin4+83-2
2023-08-12 04:08benchmark very large fileWilliam Casarin3+11-6
2023-08-12 04:08bench: switch to monotonic clock for benchmarkingWilliam Casarin2+4-4
2023-08-12 03:27ndb: add note querying by id, add testsWilliam Casarin3+73-16
2023-08-12 02:20ndb: parse profiles, index notes using clustered keysWilliam Casarin2+256-34
2023-08-12 02:19notes: change created_at to uint64William Casarin3+10-7
2023-08-12 02:21note: add a reserved area for future expansionWilliam Casarin1+1-1
2023-08-12 02:18nbd: add clustered key helpersWilliam Casarin1+59-9
2023-08-12 02:21ndb: add padding to tagsWilliam Casarin1+1-0
2023-08-12 02:21schema: add evidWilliam Casarin1+2-0
2023-08-11 04:16schemas: add event metadata schemaWilliam Casarin6+276-2
2023-08-11 04:16make: more comprehensive ctag searchingWilliam Casarin1+1-1
2023-08-11 04:15make: simplify flatcc builder commandsWilliam Casarin2+13-17
2023-08-10 19:29memchr: fix build on non-arm systemsWilliam Casarin1+1-1
2023-08-10 22:38perf: optimize hex_decodeWilliam Casarin1+12-11
2023-08-10 19:53schema: add flatcc json parser for profilesWilliam Casarin2+293-4
2023-08-10 19:45make: add flatcc depWilliam Casarin1+9-0
2023-08-10 19:45make: remove bindings from cleanWilliam Casarin1+1-1
2023-08-10 19:26build: fix compilation of ndb_process_events in release modeWilliam Casarin1+4-0
2023-08-10 19:26memchr: cleanup debugsWilliam Casarin1+2-14
2023-08-10 19:26test: reset db on test runsWilliam Casarin1+1-0
2023-08-10 19:25profile: remove json from bindingsWilliam Casarin5+60-75
2023-08-10 19:10ndb: add ndb_process_eventsWilliam Casarin3+53-1
2023-08-10 19:11test: add profiles testdataWilliam Casarin1+500-0
2023-08-10 19:09debug: add a few debugsWilliam Casarin1+29-6
2023-08-10 19:07idhack: make sure json parser in continable after we parse the idWilliam Casarin2+5-3
2023-08-10 19:05json: ensure all fields are present when parsingWilliam Casarin1+25-2
2023-08-10 17:21add optimized memchr function for processing newlinesWilliam Casarin4+119-1
2023-08-10 17:21bench: move ingest benchmark to its own fileWilliam Casarin4+63-28
2023-08-10 05:21insane optimization: check id existence before parsing entire jsonWilliam Casarin6+127-52
2023-08-10 04:06ndb: only validate signature if don't have the note alreadyWilliam Casarin1+7-8
2023-08-10 04:03ndb: actually write notes to DBWilliam Casarin2+162-50
2023-08-10 04:01ndb: close db after threadsWilliam Casarin1+2-2
2023-08-10 03:58ndb: add ndb_lmdb structWilliam Casarin1+6-0
2023-08-10 03:58ndb: define dbi'sWilliam Casarin1+5-0
2023-08-08 21:59ingester: switch single-thread to threadpoolWilliam Casarin4+41-57
2023-08-08 21:59threadpool: add threadpool implementationWilliam Casarin2+104-0
2023-08-08 19:58queue: write many messages to the queue at onceWilliam Casarin3+65-9
2023-08-08 00:32test: make sure to free!William Casarin1+1-0
2023-08-08 00:30test: add ingest testWilliam Casarin3+20-8
2023-08-07 22:36ndb: add threaded ingester and writer queuesWilliam Casarin2+351-10
2023-08-07 22:35queue: add pop_allWilliam Casarin1+35-4
2023-08-07 22:34util: add util helpersWilliam Casarin1+33-0
2023-08-07 20:27dir: add test database dirWilliam Casarin2+1-0
2023-08-07 18:25ndb: lmdb initWilliam Casarin3+64-4
2023-08-07 18:25make: update in preparation for lmdb testsWilliam Casarin1+10-4
2023-08-07 18:24direnv: nix off for nowWilliam Casarin1+1-1
2023-08-07 18:24direnv: todo.sh optionalWilliam Casarin1+1-1
2023-08-07 17:04ndb: add ndb_init and ndb_process_event placeholdersWilliam Casarin2+52-1
2023-08-07 17:05lmdb: add db scan helperWilliam Casarin1+100-0
2023-08-07 17:03make: add lmdb to buildWilliam Casarin2+28-8
2023-08-06 04:21some todo helpersWilliam Casarin3+12-1
2023-08-04 23:26queue: add protected queue implementationWilliam Casarin2+275-0
2023-08-04 15:58bindings: add generated profile bindingsWilliam Casarin6+1588-0
2023-08-04 15:57schema: add profile flatbuffers schemaWilliam Casarin2+56-1
2023-08-03 17:49fix issue where small content lengths weren't getting writtenWilliam Casarin3+118-0
2023-07-29 23:48bench: fix file pathWilliam Casarin1+1-1
2023-07-26 19:27fix command result messagesWilliam Casarin2+25-0
2023-07-26 17:10test: ws_event contactWilliam Casarin3+3209-1
2023-07-26 15:09fix builder id generation and signingWilliam Casarin1+4-2
2023-07-26 03:02ndb: switch to enum for tce typesWilliam Casarin1+9-7
2023-07-26 17:09fix buildWilliam Casarin2+2-2
2023-07-26 02:41ndb: handle eose and command resultsWilliam Casarin4+56-10
2023-07-26 02:29ndb: add websocket event parserWilliam Casarin4+167-34
2023-07-25 20:10ndb: expose keypair structWilliam Casarin2+13-13
2023-07-25 19:48ndb: simplify by not requiring secp context in APIWilliam Casarin2+19-17
2023-07-25 19:29type-erase any secp stuff so it's not in the ndb headerWilliam Casarin2+22-21
2023-07-25 19:04add ndb_sign_id and ndb_calculate_idWilliam Casarin9+242-43
2023-07-25 16:15support note id calculationWilliam Casarin3+171-0
2023-07-25 14:45extract cursor_push_unescaped_charWilliam Casarin1+19-37
2023-07-24 23:23add sha256William Casarin7+2030-3
2023-07-24 23:04test: add test that make sure string functions work before finalizationWilliam Casarin1+16-0
2023-07-24 22:57builder: allow note string funcs to work before finalizationWilliam Casarin1+1-0
2023-07-24 21:49Add a CMake script. Tested in Ubuntu Linux 22.04pvn1+46-0
2023-07-24 21:56add created_at to builderWilliam Casarin2+6-0
2023-07-24 21:39ndb_builder_new -> ndb_builder_initWilliam Casarin3+6-6
2023-07-23 19:07huge perf boost when switching from strncmp to memcmpWilliam Casarin2+9-6
2023-07-23 17:42make iterator more intuitiveWilliam Casarin2+63-9
2023-07-23 16:55fix testsWilliam Casarin1+2-1
2023-07-23 15:49we don't actually store the json (yet?)William Casarin1+0-1
2023-07-22 17:52pack pubkeys and id stringsWilliam Casarin3+131-98
2023-07-23 15:44Create c-cpp.ymlWilliam Casarin1+17-0
2023-07-22 22:23add content length to ndb_noteWilliam Casarin3+27-4
2023-07-22 20:49add kind parsing supportWilliam Casarin3+12-1
2023-07-22 20:35json: parse created_atWilliam Casarin2+39-1
2023-07-22 19:58make contacts smaller for a more realistic benchWilliam Casarin1+1-3162
2023-07-22 19:02fix build on some compilersWilliam Casarin3+5-3
2023-07-22 18:36make: update cleanWilliam Casarin1+1-1
2023-07-22 18:32add benchmarkingWilliam Casarin5+62-3
2023-07-22 18:13test: check for unescaped contentWilliam Casarin1+13-1
2023-07-22 18:03test: assert size againWilliam Casarin1+1-1
2023-07-22 18:06json: try compact string before we unescapeWilliam Casarin1+5-2
2023-07-22 18:05rename to push_string -> make_string to align with other functionsWilliam Casarin1+3-3
2023-07-22 18:05extract ndb_builder_try_compact_stringWilliam Casarin1+21-9
2023-07-22 17:49refactor builder logic a bitWilliam Casarin1+43-17
2023-07-22 17:44use strncmp instead of strcmpWilliam Casarin1+1-1
2023-07-22 17:36push chunks at a time when unescaping jsonWilliam Casarin1+17-8
2023-07-22 17:25initial string unescaping logicWilliam Casarin2+101-9
2023-07-22 16:43fix indentsWilliam Casarin1+2-3
2023-07-22 15:49write ndb record for testing purposesWilliam Casarin4+21-6
2023-07-22 14:38Revert "switch to 2-byte string indices and remove packed string"William Casarin3+84-29
2023-07-22 14:38add large contacts testWilliam Casarin3+3217-0
2023-07-22 14:01switch to 2-byte string indices and remove packed stringWilliam Casarin3+29-84
2023-07-21 22:01fixup style some moreWilliam Casarin1+46-35
2023-07-21 21:58add ndb_tag_matches_char functionWilliam Casarin1+11-0
2023-07-21 21:21reverse braindamageWilliam Casarin1+37-32
2023-07-21 21:21hardcode jsmn settingsWilliam Casarin2+4-1
2023-07-21 20:44fix tag iterationWilliam Casarin1+8-9
2023-07-20 23:30fix json token memory calcWilliam Casarin2+8-4
2023-07-20 23:29git: add some ignore for mac filesWilliam Casarin1+1-0
2023-07-20 21:17json: support tag parsingWilliam Casarin3+86-37
2023-07-20 20:17json: switch to ndb_json_parser for tag processingWilliam Casarin1+7-7
2023-07-20 19:08remove all dynamic allocationsWilliam Casarin5+123-63
2023-07-20 17:44remove duplicate license fileWilliam Casarin1+0-1
2023-07-20 17:42json: start on tags builderWilliam Casarin2+65-29
2023-07-20 17:37move some function names to their own lineWilliam Casarin2+40-20
2023-07-20 07:59flatbuffers: remove nostr_index.fbsWilliam Casarin1+0-32
2023-07-20 07:55initial json decodingWilliam Casarin6+663-27
2023-07-20 06:20makefile: add clean and optimizeWilliam Casarin1+5-2
2023-07-20 05:54test: empty tagsWilliam Casarin1+20-2
2023-07-20 05:49move commentWilliam Casarin1+1-1
2023-07-19 19:10nostrdb: the unfairly fast nostr databaseWilliam Casarin10+574-0
2023-12-04 22:13writer: make sure we don't write a note if we already have itWilliam Casarin2+7-0
2023-12-04 22:27test: "fix" search testWilliam Casarin1+4-2
2023-12-04 22:27util: add print_util.h for various printing tasksWilliam Casarin4+38-47
2023-12-02 23:02search: fix another newest-first bugWilliam Casarin1+7-2
2023-12-02 21:55add lmdb data stuff to gitignoreWilliam Casarin1+4-0
2023-12-02 21:09search: fix subtle bug with some newest-first text searchWilliam Casarin3+92-26
2023-12-02 20:16search: also index longformWilliam Casarin1+2-2
2023-12-02 19:49refactor: move search key printer in case we need itWilliam Casarin1+8-8
2023-12-02 01:26test: fix text search testWilliam Casarin1+1-1
2023-12-02 01:19util/ndb: return note idsWilliam Casarin1+10-0
2023-12-02 18:40test: add missing search testdataWilliam Casarin1+3-0
2023-12-02 01:14search: make sure we break instead of returnWilliam Casarin1+1-1
2023-12-02 01:04search: allow searching from newest-to-oldest and oldest-to-newestWilliam Casarin4+106-26
2023-12-02 00:21search: add limit paramWilliam Casarin3+6-4
2023-12-01 23:37search: remove result printing, move to util/ndbWilliam Casarin2+33-41
2023-12-01 23:29remove old benchmarkWilliam Casarin2+0-60
2023-12-01 22:26util/ndb: fix buildWilliam Casarin3+10-4
2023-12-01 17:52Delete unuse argument (destsize)hakkadaikon2+2-2
2023-12-01 21:56rename get_physical_cores to get_cpu_coresWilliam Casarin2+2-2
2023-12-01 21:20add missing cpu.hWilliam Casarin2+35-1
2023-12-01 21:17config: fix ingester thread settingsWilliam Casarin1+3-3
2023-12-01 21:10ingest: add configurable ingest filterWilliam Casarin4+144-78
2023-12-01 19:17readme: you need to make many-events!William Casarin1+1-0
2023-12-01 19:08readme: show search query outputWilliam Casarin1+4-0
2023-12-01 18:49readme: fix typoWilliam Casarin1+1-1
2023-12-01 18:48readme: update to mention ndb toolWilliam Casarin1+37-0
2023-12-01 18:45readme: update wordingWilliam Casarin1+2-2
2023-12-01 18:44readme: note about api stabilityWilliam Casarin1+5-0
2023-12-01 18:41Switch to GPLWilliam Casarin1+674-1
2023-11-30 21:00search: phrase searching workingWilliam Casarin2+254-160
2023-11-30 17:44flag: add ndb config flag for skipping note verificationWilliam Casarin4+47-20
2023-11-29 20:04util/ndb: add import commandWilliam Casarin1+27-0
2023-11-29 19:01util/ndb: add fulltext searchingWilliam Casarin2+28-6
2023-11-29 20:02util/ndb: reduce threads a bitWilliam Casarin1+1-1
2023-11-29 20:01search: fix infinite loop when parsing some notesWilliam Casarin1+9-0
2023-11-29 19:58segfault: fix weird crash in ispunctWilliam Casarin1+1-1
2023-11-29 20:03db: remove the DUPFIXED flag from the fulltext dbWilliam Casarin1+2-1
2023-11-29 20:03debug: fix some debug-mode compile issuesWilliam Casarin1+3-1
2023-11-28 23:53search: prepare text search for accurate phrase resultsWilliam Casarin3+323-61
2023-11-28 18:51search: make search case insensitiveWilliam Casarin3+27-3
2023-11-28 00:08Add fulltext search indexWilliam Casarin5+662-20
2023-11-28 00:39Fix invalid db selection when writing kind indexWilliam Casarin1+1-1
2023-11-25 23:24index: write kind index when processing notesWilliam Casarin1+37-0
2023-11-25 23:15refactor: move write id index to its own functionWilliam Casarin1+29-14
2023-11-25 23:07refactor: move profile index writing to its own functionWilliam Casarin1+31-15
2023-11-23 22:19readme: add workflow status badgeWilliam Casarin1+2-0
2023-11-23 21:32ci: add flatcc to github actionWilliam Casarin1+17-1
2023-11-23 21:20index: create kind+timestamp index databaseWilliam Casarin2+9-1
2023-11-23 21:19index: add u64_timestamp lmdb comparatorWilliam Casarin1+27-0
2023-11-23 21:18debug: use mdb_strerror in more placesWilliam Casarin1+2-2
2023-11-23 20:45filter: make sure we only match single charsWilliam Casarin1+1-1
2023-11-22 21:46filters: add initial filter interfaceWilliam Casarin3+512-0
2023-11-22 18:27test: remove non-deterministic testWilliam Casarin1+2-1
2023-11-21 23:41cursor: add cursor_skipWilliam Casarin1+10-0
2023-11-17 01:58all these TODOs are doneWilliam Casarin1+0-8
2023-11-14 18:25ndb/stat: include totals in stat outputWilliam Casarin3+14-3
2023-11-14 18:25fix buildWilliam Casarin1+1-1
2023-11-14 17:47cli: add ndb toolWilliam Casarin3+82-1
2023-11-14 17:45stat: add ndb_stat for counting thingsWilliam Casarin2+212-12
2023-11-14 17:43ingester: handle case where transaction may failWilliam Casarin1+7-2
2023-11-04 02:57ndb: fix potential crash in some tsid queriesWilliam Casarin1+5-2
2023-11-02 05:12ndb: migration fix for japanese profile namesWilliam Casarin2+99-22
2023-11-02 01:18json: fix profile parsing of japanese usernamesWilliam Casarin1+2-2
2023-10-23 01:52log: remove spammy logWilliam Casarin1+1-1
2023-10-20 04:26test: add test for fetched_at logicWilliam Casarin2+21-5
2023-10-06 17:04record when a profile was last fetchedWilliam Casarin3+114-13
2023-10-08 05:38stats: add reaction counterWilliam Casarin5+181-6
2023-10-08 05:43update generated bindings for note metadataWilliam Casarin6+335-18
2023-10-08 05:34update metadata schemaWilliam Casarin1+5-0
2023-10-08 04:12txn: refactor nostrdb to use ndb_txn in more places internallyWilliam Casarin2+87-60
2023-10-08 00:37testdata: add japanese profileWilliam Casarin1+1-0
2023-10-08 00:37test: update replacement testWilliam Casarin2+5-7
2023-10-06 17:37Fix profiles not updatingWilliam Casarin1+1-1
2023-09-28 10:41profiles: switch to pubkeys for last fetched timeWilliam Casarin2+7-7
2023-09-28 02:51db: add ndb_read_last_profile_fetchWilliam Casarin2+12-1
2023-09-28 02:43db: add new database for tracking last profile fetchesWilliam Casarin2+50-0
2023-09-28 02:16initial rust bindingsWilliam Casarin3+706-2
2023-09-25 01:34make rust bindings dirWilliam Casarin1+0-0
2023-09-24 23:21add ndb_process_client_event(s)William Casarin4+180-66
2023-09-24 22:39actually run profile updates test...William Casarin1+1-0
2023-09-24 22:39log: cleanup logsWilliam Casarin2+4-4
2023-09-24 22:16test: test profile updatesWilliam Casarin2+49-2
2023-09-22 18:43bench: fix buildWilliam Casarin2+2-2
2023-09-22 18:43log: move some printfs to ndb_debugWilliam Casarin1+3-3
2023-09-21 22:00search: make profile search case insensitiveWilliam Casarin2+49-6
2023-09-21 16:09add profile search index migrationsWilliam Casarin2+149-86
2023-09-20 13:33test: add test to check profile search duplicatesWilliam Casarin1+19-11
2023-09-20 13:23query: remove unused dataWilliam Casarin1+0-1
2023-09-20 13:18search: skip duplicate pubkeys when searching profilesWilliam Casarin3+55-10
2023-09-19 20:30search: use proper compare functionWilliam Casarin1+1-0
2023-09-19 19:20db: implement profile search indexWilliam Casarin4+224-3
2023-09-13 15:29rgignore: add testdataWilliam Casarin1+1-0
2023-09-12 23:14migrations: add initial migration logicWilliam Casarin6+198-12
2023-09-11 15:43log: fix log error messagesWilliam Casarin1+15-3
2023-09-07 20:21query: fix invalid type signatureWilliam Casarin2+19-4
2023-09-07 17:47optimized function just for fetching notekeys from indicesWilliam Casarin2+12-0
2023-09-06 18:21return primkey keys on profile and note index queriesWilliam Casarin3+19-11
2023-08-31 22:39test: add test for profile replacement logicWilliam Casarin2+47-0
2023-08-30 20:57add transactionsWilliam Casarin3+49-36
2023-08-29 02:43Fix build on some compilersWilliam Casarin1+1-1
2023-08-28 17:08port escaped slash fix from damusWilliam Casarin1+1-0
2023-08-28 15:04don't force debug buildsWilliam Casarin1+1-1
2023-08-28 14:32debug: turn off noisy debugs for nowWilliam Casarin1+3-3
2023-08-28 14:22fix lmdb alignment issuesWilliam Casarin5+26-13
2023-08-28 04:10ndb: assert alignmentWilliam Casarin2+17-6
2023-08-28 01:57ndb: add support for fetching notes by primary keyWilliam Casarin3+45-4
2023-08-28 01:25ndb: add note foreign key to profileWilliam Casarin9+155-69
2023-08-27 22:06swift: gen codable instancesWilliam Casarin2+57-1
2023-08-27 19:44ndb: switch to profile records in dbWilliam Casarin4+43-18
2023-08-27 19:37profile: use ProfileRecord to hold additional profile metadataWilliam Casarin7+261-2
2023-08-27 19:35add bech32 utilsWilliam Casarin2+359-0
2023-08-27 05:16profiles: add lud06 fieldWilliam Casarin7+55-27
2023-08-27 03:34ndb: test profile flatbuffersWilliam Casarin4+22-12
2023-08-27 01:09tsid: return lengthWilliam Casarin3+13-8
2023-08-27 00:40ndb: add ndb_lookup_tsid helperWilliam Casarin2+22-9
2023-08-26 23:51add failing damus test... yet curiously it worksWilliam Casarin2+42-0
2023-08-26 23:39fix benchesWilliam Casarin2+4-4
2023-08-26 01:26ndb: make id lookups constWilliam Casarin2+5-5
2023-08-26 01:03ndb: add db directory argumentWilliam Casarin3+14-8
2023-08-21 21:36test: add test for fuzz crashWilliam Casarin1+9-0
2023-08-13 14:35Fix potential crashes in char_to_hexgeeknik1+2-2
2023-08-18 15:03tsid: switch to uint64_maxWilliam Casarin1+1-1
2023-08-12 16:14make: add more benches to cleanWilliam Casarin1+1-1
2023-08-12 04:40make: fix build on linux, bump queue sizesWilliam Casarin3+5-8
2023-08-12 04:28bench: add 1million note import benchmarkWilliam Casarin4+83-2
2023-08-12 04:08benchmark very large fileWilliam Casarin3+11-6
2023-08-12 04:08bench: switch to monotonic clock for benchmarkingWilliam Casarin2+4-4
2023-08-12 03:27ndb: add note querying by id, add testsWilliam Casarin3+73-16
2023-08-12 02:20ndb: parse profiles, index notes using clustered keysWilliam Casarin2+256-34
2023-08-12 02:19notes: change created_at to uint64William Casarin3+10-7
2023-08-12 02:21note: add a reserved area for future expansionWilliam Casarin1+1-1
2023-08-12 02:18nbd: add clustered key helpersWilliam Casarin1+59-9
2023-08-12 02:21ndb: add padding to tagsWilliam Casarin1+1-0
2023-08-12 02:21schema: add evidWilliam Casarin1+2-0
2023-08-11 04:16schemas: add event metadata schemaWilliam Casarin6+276-2
2023-08-11 04:16make: more comprehensive ctag searchingWilliam Casarin1+1-1
2023-08-11 04:15make: simplify flatcc builder commandsWilliam Casarin2+13-17
2023-08-10 19:29memchr: fix build on non-arm systemsWilliam Casarin1+1-1
2023-08-10 22:38perf: optimize hex_decodeWilliam Casarin1+12-11
2023-08-10 19:53schema: add flatcc json parser for profilesWilliam Casarin2+293-4
2023-08-10 19:45make: add flatcc depWilliam Casarin1+9-0
2023-08-10 19:45make: remove bindings from cleanWilliam Casarin1+1-1
2023-08-10 19:26build: fix compilation of ndb_process_events in release modeWilliam Casarin1+4-0
2023-08-10 19:26memchr: cleanup debugsWilliam Casarin1+2-14
2023-08-10 19:26test: reset db on test runsWilliam Casarin1+1-0
2023-08-10 19:25profile: remove json from bindingsWilliam Casarin5+60-75
2023-08-10 19:10ndb: add ndb_process_eventsWilliam Casarin3+53-1
2023-08-10 19:11test: add profiles testdataWilliam Casarin1+500-0
2023-08-10 19:09debug: add a few debugsWilliam Casarin1+29-6
2023-08-10 19:07idhack: make sure json parser in continable after we parse the idWilliam Casarin2+5-3
2023-08-10 19:05json: ensure all fields are present when parsingWilliam Casarin1+25-2
2023-08-10 17:21add optimized memchr function for processing newlinesWilliam Casarin4+119-1
2023-08-10 17:21bench: move ingest benchmark to its own fileWilliam Casarin4+63-28
2023-08-10 05:21insane optimization: check id existence before parsing entire jsonWilliam Casarin6+127-52
2023-08-10 04:06ndb: only validate signature if don't have the note alreadyWilliam Casarin1+7-8
2023-08-10 04:03ndb: actually write notes to DBWilliam Casarin2+162-50
2023-08-10 04:01ndb: close db after threadsWilliam Casarin1+2-2
2023-08-10 03:58ndb: add ndb_lmdb structWilliam Casarin1+6-0
2023-08-10 03:58ndb: define dbi'sWilliam Casarin1+5-0
2023-08-08 21:59ingester: switch single-thread to threadpoolWilliam Casarin4+41-57
2023-08-08 21:59threadpool: add threadpool implementationWilliam Casarin2+104-0
2023-08-08 19:58queue: write many messages to the queue at onceWilliam Casarin3+65-9
2023-08-08 00:32test: make sure to free!William Casarin1+1-0
2023-08-08 00:30test: add ingest testWilliam Casarin3+20-8
2023-08-07 22:36ndb: add threaded ingester and writer queuesWilliam Casarin2+351-10
2023-08-07 22:35queue: add pop_allWilliam Casarin1+35-4
2023-08-07 22:34util: add util helpersWilliam Casarin1+33-0
2023-08-07 20:27dir: add test database dirWilliam Casarin2+1-0
2023-08-07 18:25ndb: lmdb initWilliam Casarin3+64-4
2023-08-07 18:25make: update in preparation for lmdb testsWilliam Casarin1+10-4
2023-08-07 18:24direnv: nix off for nowWilliam Casarin1+1-1
2023-08-07 18:24direnv: todo.sh optionalWilliam Casarin1+1-1
2023-08-07 17:04ndb: add ndb_init and ndb_process_event placeholdersWilliam Casarin2+52-1
2023-08-07 17:05lmdb: add db scan helperWilliam Casarin1+100-0
2023-08-07 17:03make: add lmdb to buildWilliam Casarin2+28-8
2023-08-06 04:21some todo helpersWilliam Casarin3+12-1
2023-08-04 23:26queue: add protected queue implementationWilliam Casarin2+275-0
2023-08-04 15:58bindings: add generated profile bindingsWilliam Casarin6+1588-0
2023-08-04 15:57schema: add profile flatbuffers schemaWilliam Casarin2+56-1
2023-08-03 17:49fix issue where small content lengths weren't getting writtenWilliam Casarin3+118-0
2023-07-29 23:48bench: fix file pathWilliam Casarin1+1-1
2023-07-26 19:27fix command result messagesWilliam Casarin2+25-0
2023-07-26 17:10test: ws_event contactWilliam Casarin3+3209-1
2023-07-26 15:09fix builder id generation and signingWilliam Casarin1+4-2
2023-07-26 03:02ndb: switch to enum for tce typesWilliam Casarin1+9-7
2023-07-26 17:09fix buildWilliam Casarin2+2-2
2023-07-26 02:41ndb: handle eose and command resultsWilliam Casarin4+56-10
2023-07-26 02:29ndb: add websocket event parserWilliam Casarin4+167-34
2023-07-25 20:10ndb: expose keypair structWilliam Casarin2+13-13
2023-07-25 19:48ndb: simplify by not requiring secp context in APIWilliam Casarin2+19-17
2023-07-25 19:29type-erase any secp stuff so it's not in the ndb headerWilliam Casarin2+22-21
2023-07-25 19:04add ndb_sign_id and ndb_calculate_idWilliam Casarin9+242-43
2023-07-25 16:15support note id calculationWilliam Casarin3+171-0
2023-07-25 14:45extract cursor_push_unescaped_charWilliam Casarin1+19-37
2023-07-24 23:23add sha256William Casarin7+2030-3
2023-07-24 23:04test: add test that make sure string functions work before finalizationWilliam Casarin1+16-0
2023-07-24 22:57builder: allow note string funcs to work before finalizationWilliam Casarin1+1-0
2023-07-24 21:49Add a CMake script. Tested in Ubuntu Linux 22.04pvn1+46-0
2023-07-24 21:56add created_at to builderWilliam Casarin2+6-0
2023-07-24 21:39ndb_builder_new -> ndb_builder_initWilliam Casarin3+6-6
2023-07-23 19:07huge perf boost when switching from strncmp to memcmpWilliam Casarin2+9-6
2023-07-23 17:42make iterator more intuitiveWilliam Casarin2+63-9
2023-07-23 16:55fix testsWilliam Casarin1+2-1
2023-07-23 15:49we don't actually store the json (yet?)William Casarin1+0-1
2023-07-22 17:52pack pubkeys and id stringsWilliam Casarin3+131-98
2023-07-23 15:44Create c-cpp.ymlWilliam Casarin1+17-0
2023-07-22 22:23add content length to ndb_noteWilliam Casarin3+27-4
2023-07-22 20:49add kind parsing supportWilliam Casarin3+12-1
2023-07-22 20:35json: parse created_atWilliam Casarin2+39-1
2023-07-22 19:58make contacts smaller for a more realistic benchWilliam Casarin1+1-3162
2023-07-22 19:02fix build on some compilersWilliam Casarin3+5-3
2023-07-22 18:36make: update cleanWilliam Casarin1+1-1
2023-07-22 18:32add benchmarkingWilliam Casarin5+62-3
2023-07-22 18:13test: check for unescaped contentWilliam Casarin1+13-1
2023-07-22 18:03test: assert size againWilliam Casarin1+1-1
2023-07-22 18:06json: try compact string before we unescapeWilliam Casarin1+5-2
2023-07-22 18:05rename to push_string -> make_string to align with other functionsWilliam Casarin1+3-3
2023-07-22 18:05extract ndb_builder_try_compact_stringWilliam Casarin1+21-9
2023-07-22 17:49refactor builder logic a bitWilliam Casarin1+43-17
2023-07-22 17:44use strncmp instead of strcmpWilliam Casarin1+1-1
2023-07-22 17:36push chunks at a time when unescaping jsonWilliam Casarin1+17-8
2023-07-22 17:25initial string unescaping logicWilliam Casarin2+101-9
2023-07-22 16:43fix indentsWilliam Casarin1+2-3
2023-07-22 15:49write ndb record for testing purposesWilliam Casarin4+21-6
2023-07-22 14:38Revert "switch to 2-byte string indices and remove packed string"William Casarin3+84-29
2023-07-22 14:38add large contacts testWilliam Casarin3+3217-0
2023-07-22 14:01switch to 2-byte string indices and remove packed stringWilliam Casarin3+29-84
2023-07-21 22:01fixup style some moreWilliam Casarin1+46-35
2023-07-21 21:58add ndb_tag_matches_char functionWilliam Casarin1+11-0
2023-07-21 21:21reverse braindamageWilliam Casarin1+37-32
2023-07-21 21:21hardcode jsmn settingsWilliam Casarin2+4-1
2023-07-21 20:44fix tag iterationWilliam Casarin1+8-9
2023-07-20 23:30fix json token memory calcWilliam Casarin2+8-4
2023-07-20 23:29git: add some ignore for mac filesWilliam Casarin1+1-0
2023-07-20 21:17json: support tag parsingWilliam Casarin3+86-37
2023-07-20 20:17json: switch to ndb_json_parser for tag processingWilliam Casarin1+7-7
2023-07-20 19:08remove all dynamic allocationsWilliam Casarin5+123-63
2023-07-20 17:44remove duplicate license fileWilliam Casarin1+0-1
2023-07-20 17:42json: start on tags builderWilliam Casarin2+65-29
2023-07-20 17:37move some function names to their own lineWilliam Casarin2+40-20
2023-07-20 07:59flatbuffers: remove nostr_index.fbsWilliam Casarin1+0-32
2023-07-20 07:55initial json decodingWilliam Casarin6+663-27
2023-07-20 06:20makefile: add clean and optimizeWilliam Casarin1+5-2
2023-07-20 05:54test: empty tagsWilliam Casarin1+20-2
2023-07-20 05:49move commentWilliam Casarin1+1-1
2023-07-19 19:10nostrdb: the unfairly fast nostr databaseWilliam Casarin10+574-0
2023-09-07 17:47optimized function just for fetching notekeys from indicesWilliam Casarin2+12-0
2023-09-06 18:21return primkey keys on profile and note index queriesWilliam Casarin3+19-11
2023-08-31 22:39test: add test for profile replacement logicWilliam Casarin2+47-0
2023-08-30 20:57add transactionsWilliam Casarin3+49-36
2023-08-28 17:08port escaped slash fix from damusWilliam Casarin1+1-0
2023-08-28 15:04don't force debug buildsWilliam Casarin1+1-1
2023-08-28 14:32debug: turn off noisy debugs for nowWilliam Casarin1+3-3
2023-08-28 14:22fix lmdb alignment issuesWilliam Casarin5+26-13
2023-08-28 04:10ndb: assert alignmentWilliam Casarin2+17-6
2023-08-28 01:57ndb: add support for fetching notes by primary keyWilliam Casarin3+45-4
2023-08-28 01:25ndb: add note foreign key to profileWilliam Casarin9+155-69
2023-08-27 22:06swift: gen codable instancesWilliam Casarin2+57-1
2023-08-27 19:44ndb: switch to profile records in dbWilliam Casarin4+43-18
2023-08-27 19:37profile: use ProfileRecord to hold additional profile metadataWilliam Casarin7+261-2
2023-08-27 19:35add bech32 utilsWilliam Casarin2+359-0
2023-08-27 05:16profiles: add lud06 fieldWilliam Casarin7+55-27
2023-08-27 03:34ndb: test profile flatbuffersWilliam Casarin4+22-12
2023-08-27 01:09tsid: return lengthWilliam Casarin3+13-8
2023-08-27 00:40ndb: add ndb_lookup_tsid helperWilliam Casarin2+22-9
2023-08-26 23:51add failing damus test... yet curiously it worksWilliam Casarin2+42-0
2023-08-26 23:39fix benchesWilliam Casarin2+4-4
2023-08-26 01:26ndb: make id lookups constWilliam Casarin2+5-5
2023-08-26 01:03ndb: add db directory argumentWilliam Casarin3+14-8
2023-08-21 21:36test: add test for fuzz crashWilliam Casarin1+9-0
2023-08-13 14:35Fix potential crashes in char_to_hexgeeknik1+2-2
2023-08-18 15:03tsid: switch to uint64_maxWilliam Casarin1+1-1
2023-08-12 16:14make: add more benches to cleanWilliam Casarin1+1-1
2023-08-12 04:40make: fix build on linux, bump queue sizesWilliam Casarin3+5-8
2023-08-12 04:28bench: add 1million note import benchmarkWilliam Casarin4+83-2
2023-08-12 04:08benchmark very large fileWilliam Casarin3+11-6
2023-08-12 04:08bench: switch to monotonic clock for benchmarkingWilliam Casarin2+4-4
2023-08-12 03:27ndb: add note querying by id, add testsWilliam Casarin3+73-16
2023-08-12 02:20ndb: parse profiles, index notes using clustered keysWilliam Casarin2+256-34
2023-08-12 02:19notes: change created_at to uint64William Casarin3+10-7
2023-08-12 02:21note: add a reserved area for future expansionWilliam Casarin1+1-1
2023-08-12 02:18nbd: add clustered key helpersWilliam Casarin1+59-9
2023-08-12 02:21ndb: add padding to tagsWilliam Casarin1+1-0
2023-08-12 02:21schema: add evidWilliam Casarin1+2-0
2023-08-11 04:16schemas: add event metadata schemaWilliam Casarin6+276-2
2023-08-11 04:16make: more comprehensive ctag searchingWilliam Casarin1+1-1
2023-08-11 04:15make: simplify flatcc builder commandsWilliam Casarin2+13-17
2023-08-10 19:29memchr: fix build on non-arm systemsWilliam Casarin1+1-1
2023-08-10 22:38perf: optimize hex_decodeWilliam Casarin1+12-11
2023-08-10 19:53schema: add flatcc json parser for profilesWilliam Casarin2+293-4
2023-08-10 19:45make: add flatcc depWilliam Casarin1+9-0
2023-08-10 19:45make: remove bindings from cleanWilliam Casarin1+1-1
2023-08-10 19:26build: fix compilation of ndb_process_events in release modeWilliam Casarin1+4-0
2023-08-10 19:26memchr: cleanup debugsWilliam Casarin1+2-14
2023-08-10 19:26test: reset db on test runsWilliam Casarin1+1-0
2023-08-10 19:25profile: remove json from bindingsWilliam Casarin5+60-75
2023-08-10 19:10ndb: add ndb_process_eventsWilliam Casarin3+53-1
2023-08-10 19:11test: add profiles testdataWilliam Casarin1+500-0
2023-08-10 19:09debug: add a few debugsWilliam Casarin1+29-6
2023-08-10 19:07idhack: make sure json parser in continable after we parse the idWilliam Casarin2+5-3
2023-08-10 19:05json: ensure all fields are present when parsingWilliam Casarin1+25-2
2023-08-10 17:21add optimized memchr function for processing newlinesWilliam Casarin4+119-1
2023-08-10 17:21bench: move ingest benchmark to its own fileWilliam Casarin4+63-28
2023-08-10 05:21insane optimization: check id existence before parsing entire jsonWilliam Casarin6+127-52
2023-08-10 04:06ndb: only validate signature if don't have the note alreadyWilliam Casarin1+7-8
2023-08-10 04:03ndb: actually write notes to DBWilliam Casarin2+162-50
2023-08-10 04:01ndb: close db after threadsWilliam Casarin1+2-2
2023-08-10 03:58ndb: add ndb_lmdb structWilliam Casarin1+6-0
2023-08-10 03:58ndb: define dbi'sWilliam Casarin1+5-0
2023-08-08 21:59ingester: switch single-thread to threadpoolWilliam Casarin4+41-57
2023-08-08 21:59threadpool: add threadpool implementationWilliam Casarin2+104-0
2023-08-08 19:58queue: write many messages to the queue at onceWilliam Casarin3+65-9
2023-08-08 00:32test: make sure to free!William Casarin1+1-0
2023-08-08 00:30test: add ingest testWilliam Casarin3+20-8
2023-08-07 22:36ndb: add threaded ingester and writer queuesWilliam Casarin2+351-10
2023-08-07 22:35queue: add pop_allWilliam Casarin1+35-4
2023-08-07 22:34util: add util helpersWilliam Casarin1+33-0
2023-08-07 20:27dir: add test database dirWilliam Casarin2+1-0
2023-08-07 18:25ndb: lmdb initWilliam Casarin3+64-4
2023-08-07 18:25make: update in preparation for lmdb testsWilliam Casarin1+10-4
2023-08-07 18:24direnv: nix off for nowWilliam Casarin1+1-1
2023-08-07 18:24direnv: todo.sh optionalWilliam Casarin1+1-1
2023-08-07 17:04ndb: add ndb_init and ndb_process_event placeholdersWilliam Casarin2+52-1
2023-08-07 17:05lmdb: add db scan helperWilliam Casarin1+100-0
2023-08-07 17:03make: add lmdb to buildWilliam Casarin2+28-8
2023-08-06 04:21some todo helpersWilliam Casarin3+12-1
2023-08-04 23:26queue: add protected queue implementationWilliam Casarin2+275-0
2023-08-04 15:58bindings: add generated profile bindingsWilliam Casarin6+1588-0
2023-08-04 15:57schema: add profile flatbuffers schemaWilliam Casarin2+56-1
2023-08-03 17:49fix issue where small content lengths weren't getting writtenWilliam Casarin3+118-0
2023-07-29 23:48bench: fix file pathWilliam Casarin1+1-1
2023-07-26 19:27fix command result messagesWilliam Casarin2+25-0
2023-07-26 17:10test: ws_event contactWilliam Casarin3+3209-1
2023-07-26 15:09fix builder id generation and signingWilliam Casarin1+4-2
2023-07-26 03:02ndb: switch to enum for tce typesWilliam Casarin1+9-7
2023-07-26 17:09fix buildWilliam Casarin2+2-2
2023-07-26 02:41ndb: handle eose and command resultsWilliam Casarin4+56-10
2023-07-26 02:29ndb: add websocket event parserWilliam Casarin4+167-34
2023-07-25 20:10ndb: expose keypair structWilliam Casarin2+13-13
2023-07-25 19:48ndb: simplify by not requiring secp context in APIWilliam Casarin2+19-17
2023-07-25 19:29type-erase any secp stuff so it's not in the ndb headerWilliam Casarin2+22-21
2023-07-25 19:04add ndb_sign_id and ndb_calculate_idWilliam Casarin9+242-43
2023-07-25 16:15support note id calculationWilliam Casarin3+171-0
2023-07-25 14:45extract cursor_push_unescaped_charWilliam Casarin1+19-37
2023-07-24 23:23add sha256William Casarin7+2030-3
2023-07-24 23:04test: add test that make sure string functions work before finalizationWilliam Casarin1+16-0
2023-07-24 22:57builder: allow note string funcs to work before finalizationWilliam Casarin1+1-0
2023-07-24 21:49Add a CMake script. Tested in Ubuntu Linux 22.04pvn1+46-0
2023-07-24 21:56add created_at to builderWilliam Casarin2+6-0
2023-07-24 21:39ndb_builder_new -> ndb_builder_initWilliam Casarin3+6-6
2023-07-23 19:07huge perf boost when switching from strncmp to memcmpWilliam Casarin2+9-6
2023-07-23 17:42make iterator more intuitiveWilliam Casarin2+63-9
2023-07-23 16:55fix testsWilliam Casarin1+2-1
2023-07-23 15:49we don't actually store the json (yet?)William Casarin1+0-1
2023-07-22 17:52pack pubkeys and id stringsWilliam Casarin3+131-98
2023-07-23 15:44Create c-cpp.ymlWilliam Casarin1+17-0
2023-07-22 22:23add content length to ndb_noteWilliam Casarin3+27-4
2023-07-22 20:49add kind parsing supportWilliam Casarin3+12-1
2023-07-22 20:35json: parse created_atWilliam Casarin2+39-1
2023-07-22 19:58make contacts smaller for a more realistic benchWilliam Casarin1+1-3162
2023-07-22 19:02fix build on some compilersWilliam Casarin3+5-3
2023-07-22 18:36make: update cleanWilliam Casarin1+1-1
2023-07-22 18:32add benchmarkingWilliam Casarin5+62-3
2023-07-22 18:13test: check for unescaped contentWilliam Casarin1+13-1
2023-07-22 18:03test: assert size againWilliam Casarin1+1-1
2023-07-22 18:06json: try compact string before we unescapeWilliam Casarin1+5-2
2023-07-22 18:05rename to push_string -> make_string to align with other functionsWilliam Casarin1+3-3
2023-07-22 18:05extract ndb_builder_try_compact_stringWilliam Casarin1+21-9
2023-07-22 17:49refactor builder logic a bitWilliam Casarin1+43-17
2023-07-22 17:44use strncmp instead of strcmpWilliam Casarin1+1-1
2023-07-22 17:36push chunks at a time when unescaping jsonWilliam Casarin1+17-8
2023-07-22 17:25initial string unescaping logicWilliam Casarin2+101-9
2023-07-22 16:43fix indentsWilliam Casarin1+2-3
2023-07-22 15:49write ndb record for testing purposesWilliam Casarin4+21-6
2023-07-22 14:38Revert "switch to 2-byte string indices and remove packed string"William Casarin3+84-29
2023-07-22 14:38add large contacts testWilliam Casarin3+3217-0
2023-07-22 14:01switch to 2-byte string indices and remove packed stringWilliam Casarin3+29-84
2023-07-21 22:01fixup style some moreWilliam Casarin1+46-35
2023-07-21 21:58add ndb_tag_matches_char functionWilliam Casarin1+11-0
2023-07-21 21:21reverse braindamageWilliam Casarin1+37-32
2023-07-21 21:21hardcode jsmn settingsWilliam Casarin2+4-1
2023-07-21 20:44fix tag iterationWilliam Casarin1+8-9
2023-07-20 23:30fix json token memory calcWilliam Casarin2+8-4
2023-07-20 23:29git: add some ignore for mac filesWilliam Casarin1+1-0
2023-07-20 21:17json: support tag parsingWilliam Casarin3+86-37
2023-07-20 20:17json: switch to ndb_json_parser for tag processingWilliam Casarin1+7-7
2023-07-20 19:08remove all dynamic allocationsWilliam Casarin5+123-63
2023-07-20 17:44remove duplicate license fileWilliam Casarin1+0-1
2023-07-20 17:42json: start on tags builderWilliam Casarin2+65-29
2023-07-20 17:37move some function names to their own lineWilliam Casarin2+40-20
2023-07-20 07:59flatbuffers: remove nostr_index.fbsWilliam Casarin1+0-32
2023-07-20 07:55initial json decodingWilliam Casarin6+663-27
2023-07-20 06:20makefile: add clean and optimizeWilliam Casarin1+5-2
2023-07-20 05:54test: empty tagsWilliam Casarin1+20-2
2023-07-20 05:49move commentWilliam Casarin1+1-1
2023-07-19 19:10nostrdb: the unfairly fast nostr databaseWilliam Casarin10+574-0