{"id":13415062,"url":"https://github.com/iboxdb/db4o-gpl","last_synced_at":"2026-01-14T05:36:50.002Z","repository":{"id":71187752,"uuid":"204261394","full_name":"iboxdb/db4o-gpl","owner":"iboxdb","description":"new Db4o GPL Source Code for Java7+ \u0026 .netstardard2.0  Android Xamarin..., the best database project to help you to learn how to make databases","archived":false,"fork":false,"pushed_at":"2026-01-10T13:09:51.000Z","size":12670,"stargazers_count":30,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-11T04:06:03.638Z","etag":null,"topics":["data","database","db4o","embaddable","java","netstandard","oodb"],"latest_commit_sha":null,"homepage":"https://iboxdb.github.io/db4o-gpl-doc/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iboxdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-08-25T07:30:52.000Z","updated_at":"2026-01-10T13:09:59.000Z","dependencies_parsed_at":"2023-06-01T11:00:57.347Z","dependency_job_id":null,"html_url":"https://github.com/iboxdb/db4o-gpl","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/iboxdb/db4o-gpl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboxdb%2Fdb4o-gpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboxdb%2Fdb4o-gpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboxdb%2Fdb4o-gpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboxdb%2Fdb4o-gpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iboxdb","download_url":"https://codeload.github.com/iboxdb/db4o-gpl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iboxdb%2Fdb4o-gpl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28410814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","database","db4o","embaddable","java","netstandard","oodb"],"created_at":"2024-07-30T21:00:42.543Z","updated_at":"2026-01-14T05:36:49.987Z","avatar_url":"https://github.com/iboxdb.png","language":"Java","funding_links":[],"categories":["Database","数据库"],"sub_categories":[],"readme":"#### The Basic Principle of db4o\r\n\r\ndb4o is a non-intrusive persistence system that stores any complex object with one single line of code. The class schema of your application classes is analysed and adjusted in real time when objects are stored. Object-oriented querying functionality is provided through Native Queries (NQ), the ability to query the database using .NET syntax and semantics (similar in concept to LINQ/DLINQ), Query by Example (QBE) which uses prototype objects for querying and other APIs. High performance is achieved with indexed fields and by reducing database-file-internal redirections to the absolute minimum. db4o features ACID transactions, fast embedded single-user mode and multi-transactional Client/Server access, locally and through TCP, object-oriented replication, and the ObjectManager to browse database files.\r\n\r\n[Download Object Manager Binaries to TRY](https://github.com/iboxdb/db4o-gpl-doc/tree/master/Binaries/20190916)\r\n\r\n#### Db4o-GPL .NetStandard2.0 \u0026 Java7+ Version\r\n\r\nNot as complexity as big **SQL** database server, not as simplicity as **iBoxDB**,\r\n\r\nDb4o is the best database project to help you to learn how to write a database.\r\n\r\nThis adventurous oop-database project, has no news in a long time. \r\nhere update it to .NetStandard2 \u0026 Java7. some users maybe need it.\r\n\r\n\r\n#### DotNet Core\r\n\r\nUse MonoDevelop to Open **Db4o-2010.sln**  or run\r\n```\r\nDb4objects.Db4o.Optional/dotnet publish -c Release\r\ntest/dotnet run\r\n```\r\n**/test** includes a dotnet core example.\r\n\r\n\r\n#### JAVA 7\r\nUse IDE **NetBeans 12** to Open **db4o.j/db4o-core** project\r\n```\r\n Build Project will output a jar to ../db4o-gpl/db4o.j/db4o-core/dist/db4o-core.jar\r\n or Run File, db4o.j/db4o-core/tutorial/src/com/db4odoc/f1/Main.java \r\n\r\n [user@localhost db4o-core]$ /home/user/netbeans12/extide/ant/bin/ant jar\r\n```\r\ndb4o-core using JDK7, some test files using JDK11, the test files can be removed.\r\n\r\n\r\n#### Xamarin\r\n\r\n```\r\nDb4o-Projects/*/dotnet publish -c Release //like above\r\nAdd 4 DLLs in /Output to xamarin-project\r\n\r\nvar path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);\r\nstring dbpath = Path.Combine(path, \"x.db\");\r\ndb = Db4oEmbedded.OpenFile(dbpath);\r\n\r\nProject Properities-\u003eAndroid Options-\u003eLinking-\u003e\"Sdk Assemblies Only\" (not \"Sdk and User Assemblies\").\r\nPermission: Read/Write_External_Storage, INTERNET\r\n```\r\n\r\n#### Android Java\r\n\r\n```java\r\n// \u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/\u003e\r\n// \u003cuses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/\u003e\r\n// \u003cuses-permission android:name=\"android.permission.INTERNET\"/\u003e\r\n\r\nprivate class Async extends android.os.AsyncTask{\r\n  @Override  \r\n  protected Object doInBackground(Object... arg) {\r\n    //Path \r\n    //android.os.Environment.getDataDirectory().getAbsolutePath()\r\n    //\t\t+ \"/data/\" + \"com.example.fapp\" + \"\"\r\n    //DB4O Code here \r\n    return null;\r\n  }\r\n}\r\n\r\nnew Async().execute(null);\r\n```\r\n\r\n#### Download Assemblies Directly\r\n\r\nCompile Source Code\r\n\r\n#### .NET Tutorials\r\n\r\n[Getting Started With db4o](https://dzone.com/refcardz/getting-started-db4o)\r\n\r\n[gamlor.info](https://www.gamlor.info/wordpress/tag/db4o/)\r\n\r\n[Object-oriented database programming with db4o](https://www.codeproject.com/articles/17946/object-oriented-database-programming-with-db4o)\r\n\r\n\r\n#### API\r\n\r\n##### .NET Docs  [Db4oEmbedded](https://iboxdb.github.io/db4o-gpl-doc/output/api/Db4objects.Db4o/Db4oEmbedded/)\r\n\r\n##### JAVA Docs [Db4oEmbedded](https://iboxdb.github.io/db4o-gpl-doc/javadoc/com/db4o/Db4oEmbedded.html)\r\n\r\n##### [About UpdateDepth](https://iboxdb.github.io/db4o-gpl-doc/output/api/Db4objects.Db4o.Config/ICommonConfiguration/69C8CF73)\r\n \r\n\r\n#### Examples\r\n\r\n#####  [.NET Example](https://github.com/iboxdb/db4o-gpl/blob/master/db4o.net/Db4odoc.Tutorial.Chapters/F1/Chapter6/ClientServerExample.cs)\r\n\r\n##### [JAVA Example](https://github.com/iboxdb/db4o-gpl/blob/master/db4o.j/db4o-core/tutorial/src/com/db4odoc/f1/chapter6/ClientServerExample.java)\r\n\r\n[WIKI](https://github.com/iboxdb/db4o-gpl/wiki)\r\n\r\n**One Local Share Connection**\r\n\r\n```java\r\nObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded\r\n\t\t\t\t.newConfiguration(), DB4OFILENAME);\r\n```\r\n\r\n[See Session Object Container](https://github.com/iboxdb/db4o-gpl/wiki/Db4oSessions#session-containers)\r\n\r\n\r\n**Multiple Local Connections**\r\n```java\r\nServerConfiguration config = Db4oClientServer.newServerConfiguration();\r\n//https://iboxdb.github.io/db4o-gpl-doc/javadoc/com/db4o/config/CommonConfiguration.html#updateDepth(int)\r\nconfig.common().objectClass(Car.class).updateDepth(5);\r\n//https://iboxdb.github.io/db4o-gpl-doc/javadoc/com/db4o/cs/Db4oClientServer.html#openServer(com.db4o.cs.config.ServerConfiguration,java.lang.String,int)\r\n//Set Port = 0\r\nObjectServer server = Db4oClientServer.openServer(config, DB4OFILENAME, 0);\r\ntry {\r\n  ObjectContainer client = server.openClient();\r\n  // Do something with this clients\r\n  client.close();\r\n} finally {\r\n  server.close();\r\n}\r\n//Open new Client for every request. Concurrent\r\npublic static void queryLocalServer(ObjectServer server) {\r\n  ObjectContainer client = server.openClient();\r\n  listResult(client.queryByExample(new Car(\"885588\")));\r\n  client.close();\r\n}\r\n```\r\n\r\n**Multiple Remote Connections**\r\n```java\r\n//set PORT \u003e 0\r\nObjectServer server = Db4oClientServer.openServer(Db4oClientServer\r\n\t\t\t\t.newServerConfiguration(), DB4OFILENAME, PORT);\r\nserver.grantAccess(USER, PASSWORD);\r\ntry {\r\n  ObjectContainer client = Db4oClientServer.openClient(\r\n    Db4oClientServer.newClientConfiguration(), \"localhost\",PORT, USER, PASSWORD);\r\n  // Do something with this client, or open more clients\r\n  client.close();\r\n} finally {\r\n  server.close();\r\n}\r\n```\r\n\r\n**Java Lambda Index**\r\n```java\r\nvar rs = see.query((Record r) -\u003e r.indexField == dv);\r\n```\r\n\r\n#### Getting Started\r\n```cs\r\npublic class Node\r\n{\r\n  [Indexed]\r\n  public String Name;\r\n  public Node Left;\r\n  public Node Right;\r\n}\r\n    \r\nStringBuilder sb = new StringBuilder();\r\nvar path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);\r\npath = Path.Combine(path, \"t.db\");\r\nFile.Delete(path);\r\n\r\nvar cf = Db4oEmbedded.NewConfiguration();\r\ncf.Common.Add(new TransparentActivationSupport());\r\ncf.Common.Add(new TransparentPersistenceSupport());\r\nusing (var oc = Db4oEmbedded.OpenFile(cf, path))\r\n{\r\n    using (var ss = oc.Ext().OpenSession())\r\n    {\r\n        Node root = new Node();\r\n        root.Name = \"Root\";\r\n        root.Left = new Node();\r\n        root.Left.Name = \"LEFT\";\r\n        root.Left.Left = new Node();\r\n        root.Left.Left.Name = \"LEFT.LEFT\";\r\n        ss.Store(root);\r\n        ss.Commit();\r\n    }\r\n    using (var ss = oc.Ext().OpenSession())\r\n    {\r\n        sb.AppendLine(ss.QueryByExample(new Node { Name = \"Root\" }).First().Left.Left.Name);\r\n    }\r\n}\r\n```\r\n\r\n#### Object Management\r\n\r\n**Use NetBeans-11 with Java on Linux**\r\n\r\n```\r\nbuild 'db4o.j/db4o-core' project, get db4o-core.jar\r\nuse NetBeans open db4o-gpl/admins/om.j/ObjectManager/ \r\nbuild and run\r\n```\r\n\r\n**Use MonoDevelop-7.8.4+ with Mono-6 on Linux**\r\n\r\n```\r\nDb4o-Projects/*/dotnet publish -c Release, get db4o DLLs\r\nuse MonoDevelop open  db4o-gpl/admins/om.net/OMAddin-2010.sln \r\nbuild and run\r\n```\r\n\r\n\r\n[See the result, images/db4o_gpl.png](https://iboxdb.github.io/db4o-gpl-doc/images/db4o_gpl.png)\r\n\r\n![](https://iboxdb.github.io/db4o-gpl-doc/images/db4o_gpl.png)\r\n\r\n\r\n\r\n[See the result, images/db4o_java_gpl.png](https://iboxdb.github.io/db4o-gpl-doc/images/db4o_java_gpl.png)\r\n\r\n![](https://iboxdb.github.io/db4o-gpl-doc/images/db4o_java_gpl.png)\r\n\r\n\u003cbr\u003e \r\n\u003cbr\u003e \r\n\r\nLicense: [GPL](https://github.com/iboxdb/db4o-gpl/blob/master/db4o.net/db4o.license/db4o.license.html) , as MySQL.\r\n\r\n\r\nThe info from the author. \r\nhttp://supportservices.actian.com/versant/default.html\r\n```\r\ndb4o\r\n\r\nWith regret we have to announce that Actian decided not to actively pursue and promote the commercial db4o product offering for new customers any longer.\r\n\r\nSince the db4o dual licensing model allows for the free usage of the community edition of db4o for non-commercial purposes, \r\nyou have the opportunity to continue to use it for your non-commercial applications or\r\neven fork it to provide support for the community.\r\nYou can find the latest installer packages including the source tarball here for Java, .NET35, .NET40\r\n\r\nActian will continue to provide commercial licenses and support for existing customers with active support contract.\r\n \r\n```\r\n \r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiboxdb%2Fdb4o-gpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiboxdb%2Fdb4o-gpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiboxdb%2Fdb4o-gpl/lists"}